blob: 7f07fd42cc3ad4779a12667373cc16ee598fb6c9 [file] [log] [blame]
From the below, typical values would be: "DEFINER", "INVOKER", "IMPLEMENTATION DEFINED"
Since there are several implementation defined security designations, it is best to go with the string.
From 5WD-02-Foundation-2002-12
11.50 <SQL-invoked routine>
<external security clause> ::=
EXTERNAL SECURITY DEFINER
| EXTERNAL SECURITY INVOKER
| EXTERNAL SECURITY IMPLEMENTATION DEFINED
4.27 SQL-invoked routines
If the SQL-invoked routine is an SQL routine, then the identifiers are determined according to the SQL security
characteristic of the SQL-invoked routine:
- If the SQL security characteristic is DEFINER , then:
* If the routine authorization identifier is a user identifier, the user identifier is set to the routine authorization
identifier and the role name is set to null.
* Otherwise, the role name is set to the routine authorization identifier and the user identifier is set to
null.
- If the SQL security characteristic is INVOKER , then the identifiers remain unchanged.
If the SQL-invoked routine is an external routine, then the identifiers are determined according to the external
security characteristic of the SQL-invoked routine:
- If the external security characteristic is DEFINER , then:
* If the routine authorization identifier is a user identifier, then the user identifier is set to the routine
authorization identifier and the role name is set to the null value.
* Otherwise, the role name is set to the routine authorization identifier and the user identifier is set to the
null value.
- If the external security characteristic is INVOKER , then the identifiers remain unchanged.
- If the external security characteristic is IMPLEMENTATION DEFINED , then the identifiers are set to
implementation-defined values.