Routine-level privileges

You can apply the Execute privilege on a user-defined routine (UDR) to authorize nonowners to execute the UDR. If you create a UDR in a database that is not ANSI-compliant, the default routine-level privilege is PUBLIC; you are not required to grant the Execute privilege to specific users unless you have first revoked it. If you create a routine in an ANSI-compliant database, no other users have the Execute privilege by default; you must grant specific users the Execute privilege. The following example grants the Execute privilege to the user orion so that orion can use the UDR that is named read_address:
GRANT EXECUTE ON ROUTINE read_address TO orion;

The sysprocauth system catalog table records routine-level privileges. The sysprocauth system catalog table uses a primary key of the routine number, grantor, and grantee. In the procauth column, the execute privilege is indicated by a lowercase e. If the execute privilege was granted with the WITH GRANT option, the privilege is represented by an uppercase E.

For more information about routine-level privileges, see the HCL OneDB™ Guide to SQL: Tutorial.