この形式の GRANT ステートメントは、パッケージに対する特権を付与します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、 あるいは動的 SQL ステートメントの使用によって発行することができます。 このステートメントは、動的に作成できる実行可能ステートメントです。 しかし、バインド・オプション DYNAMICRULES BIND を適用する場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。
許可
このステートメントの許可 ID には、以下の特権が少なくとも 1 つ含まれている必要があります。
CONTROL 特権を付与するには、SYSADM または DBADM の権限が必要です。
他の GRANT ステートメントについては、GRANT (データベース権限)、GRANT (索引特権)、 GRANT (スキーマ特権)、GRANT (サーバー特権)、および GRANT (表、視点、またはニックネーム特権)を参照してください。
構文
.-,-------------------. V | >>-GRANT--------+-BIND---------+--+-----------------------------> +-CONTROL------+ | (1) | '-EXECUTE------' (2) >----ON--PACKAGE-------package-name-----------------------------> .-,------------------------------------. V | >----TO----+-+-------+---authorization-name--+--+-------------->< | +-USER--+ | | '-GROUP-' | '-PUBLIC--------------------------'
注:
説明
ユーザーには、BIND 特権に加えて、 プログラムに含まれている静的 DML ステートメントによって参照される表ごとに必要な特権が与えられていなければなりません。 これは、静的 DML ステートメントに対する許可がバインド時に検査されるので必要になります。
CONTROL 権限を付与される authorization-name には、 自動的に BIND と EXECUTE が付与されます。
この許可 ID のリストに、 このステートメントを出すユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。
規則
例
例 1: PACKAGE CORPDATA.PKGA に対する EXECUTE 権限を PUBLIC に与えます。
GRANT EXECUTE ON PACKAGE CORPDATA.PKGA TO PUBLIC
例 2: パッケージ CORPDATA.PKGA に対する EXECUTE 権限を EMPLOYEE という名前のユーザーに与えます。 EMPLOYEE と呼ばれるグループもユーザーも存在していません。
GRANT EXECUTE ON PACKAGE CORPDATA.PKGA TO EMPLOYEE
または
GRANT EXECUTE ON PACKAGE CORPDATA.PKGA TO USER EMPLOYEE