This clause is mandatory for all external procedures that perform operating system I/O. Failing to specify this clause for a procedure that performs I/O can produce unpredictable results and even cause the database, if not the entire system, to reset.
Note that authorization_name is an optional Teradata extension to the ANSI SQL:2011 standard.
When a procedure definition specifies EXTERNAL SECURITY DEFINER, then that procedure executes in one of the following environments.
- Specified OS platform user context of the associated security statement created for that purpose.
- Same database or user in which the procedure is defined.
The following rules apply.
- If you do not specify an authorization name, then you must create a default DEFINER authorization name (see CREATE AUTHORIZATION and REPLACE AUTHORIZATION) before a user attempts to execute the procedure.
- If you have specified an authorization name, then an object with that name must be created before the you can execute the procedure.
The system returns a warning message to the requestor when no authorization name exists at the time the procedure is being created.