This form of the REVOKE statement removes the privileges on a function or procedure.
This statement can be embedded in an application program or issued interactively. It is an executable statement that can be dynamically prepared.
The privileges held by the authorization ID of the statement must include at least one of the following:
.-PRIVILEGES-. >>-REVOKE--+-ALL--+------------+-+------------------------------> | .-,-----------. | | V | | '---+-ALTER---+-+-----' '-EXECUTE-' .-,-----------------------------------------------------------------------. V | >--ON----+-+-+-FUNCTION-+--function-name--+------------------------------+-+---+-+--> | | '-ROUTINE--' '-(--+--------------------+--)-' | | | | | .-,--------------. | | | | | | V | | | | | | '---parameter-type-+-' | | | '-SPECIFIC--+-FUNCTION-+--specific-name-------------------------' | | '-ROUTINE--' | '-+-+-PROCEDURE-+--procedure-name--+------------------------------+-+-' | '-ROUTINE---' '-(--+--------------------+--)-' | | | .-,--------------. | | | | V | | | | '---parameter-type-+-' | '-SPECIFIC--+-PROCEDURE-+--specific-name--------------------------' '-ROUTINE---' .-,----------------------. V | >--FROM----+-authorization-name-+-+---------------------------->< '-PUBLIC-------------'
built-in-type: |--+-+---SMALLINT---+----------------------------------------------------------------------------------------------+--| | +-+-INTEGER-+--+ | | | '-INT-----' | | | '---BIGINT-----' | | .-(5,0)----------------------------. | +-+-+-DECIMAL-+-+--+----------------------------------+---------------------------------------------------------+ | | '-DEC-----' | '-(--+------------------------+--)-' | | '-NUMERIC-----' '-integer--+-----------+-' | | '-, integer-' | | .-(53)----------. | +-+-FLOAT--+---------------+-+----------------------------------------------------------------------------------+ | | '-(--integer--)-' | | | +-REAL---------------------+ | | | .-PRECISION-. | | | '-DOUBLE--+-----------+----' | | .-(1)---------------. | +-+-+-+-CHARACTER-+--+-------------------+--------------+--+----------------+---------------------------------+-+ | | | '-CHAR------' '-(--+---------+--)-' | +-FOR BIT DATA---+ | | | | | '-integer-' | +-FOR SBCS DATA--+ | | | | '---+-+-CHARACTER-+--VARYING-+--(--+---------+--)---' +-FOR MIXED DATA-+ | | | | | '-CHAR------' | '-integer-' '-CCSID--integer-' | | | | '-VARCHAR----------------' | | | | .-(1M)---------------------. | | | '-----+-+-CHARACTER-+--LARGE OBJECT-+------+--------------------------+--+----------------+--+------------+-' | | | '-CHAR------' | '-(--+---------+--+---+--)-' +-FOR SBCS DATA--+ '-AS LOCATOR-' | | '-CLOB------------------------' '-integer-' +-K-+ +-FOR MIXED DATA-+ | | +-M-+ '-CCSID--integer-' | | '-G-' | | .-(1)---------------. | +-+-+---GRAPHIC----+-------------------+---------+--+----------------+-----------+------------------------------+ | | | '-(--+---------+--)-' | '-CCSID--integer-' | | | | | '-integer-' | | | | | '---+-VARGRAPHIC------+--(--+---------+--)---' | | | | '-GRAPHIC VARYING-' '-integer-' | | | | .-(1M)---------------------. | | | '---DBCLOB----+--------------------------+--+----------------+--+------------+-' | | '-(--+---------+--+---+--)-' '-CCSID--integer-' '-AS LOCATOR-' | | '-integer-' +-K-+ | | +-M-+ | | '-G-' | | .-(1)---------------. | +-+-+-BINARY--+-------------------+---------+---------------------------------+---------------------------------+ | | | '-(--+---------+--)-' | | | | | | '-integer-' | | | | | '-+-BINARY VARYING-+--(--+---------+--)-' | | | | '-VARBINARY------' '-integer-' | | | | .-(1M)---------------------. | | | '---+-BLOB----------------+----+--------------------------+--+------------+-' | | '-BINARY LARGE OBJECT-' '-(--+---------+--+---+--)-' '-AS LOCATOR-' | | '-integer-' +-K-+ | | +-M-+ | | '-G-' | +-+---DATE-----------------+------------------------------------------------------------------------------------+ | | .-(--0--)-. | | | +-TIME--+---------+------+ | | | .-(--6--)-. | | | '-TIMESTAMP--+---------+-' | | .-(200)-------------. | +---DATALINK--+-------------------+--+----------------+---------------------------------------------------------+ | '-(--+---------+--)-' '-CCSID--integer-' | | '-integer-' | '---ROWID-------------------------------------------------------------------------------------------------------'
If you do not use ALL, you must use one or more of the keywords listed below. Each keyword revokes the privilege described.
If function-name () is specified, the function identified must have zero parameters.
If an unqualified distinct type name is specified, the database manager searches the SQL path to resolve the schema name for the distinct type.
For data types that have a length, precision, or scale attribute, use one of the following:
Specifying the FOR DATA clause or CCSID clause is optional. Omission of either clause indicates that the database manager ignores the attribute when determining whether the data types match. If either clause is specified, it must match the value that was implicitly or explicitly specified in the CREATE FUNCTION statement.
If procedure-name () is specified, the procedure identified must have zero parameters.
If an unqualified distinct type name is specified, the database manager searches the SQL path to resolve the schema name for the distinct type.
For data types that have a length, precision, or scale attribute, use one of the following:
Specifying the FOR DATA clause or CCSID clause is optional. Omission of either clause indicates that the database manager ignores the attribute when determining whether the data types match. If either clause is specified, it must match the value that was implicitly or explicitly specified in the CREATE PROCEDURE statement.
Multiple grants: If you revoke a privilege on a function or procedure, it nullifies any grant of the privilege on that function or procedure, regardless of who granted it.
Revoking WITH GRANT OPTION: The only way to revoke the WITH GRANT OPTION is to revoke ALL.
Privilege warning: Revoking a specific privilege from a user does not necessarily prevent that user from performing an action that requires that privilege. For example, the user may still have the privilege through PUBLIC or administrative privileges.
Corresponding system authorities: When a function or procedure privilege is revoked, the corresponding system authorities are revoked. For information on the system authorities that correspond to SQL privileges see GRANT (Function or Procedure Privileges).
Privileges revoked from either an SQL or external function or procedure are revoked from its associated program (*PGM) or service program (*SRVPGM) object. Privileges revoked from a Java external function or procedure are revoked from the associated class file or jar file. If the associated program, service program, class file, or jar file is not found when the revoke is executed, an error is returned.
Syntax alternatives: The following keywords are synonyms supported for compatibility to prior releases. These keywords are non-standard and should not be used:
Revoke the EXECUTE privilege on procedure PROCA from PUBLIC.
REVOKE EXECUTE ON PROCEDURE PROCA FROM PUBLIC