GRANT (グローバル変数特権) ステートメント
この形式の GRANT ステートメントは、作成されたグローバル変数に 1 つ以上の特権を付与します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。このステートメントは、動的に作成できる実行可能ステートメントです。
許可
ステートメントの許可 ID によって保持されている特権には、少なくとも以下のいずれかの権限が含まれていなければなりません。
- グローバル変数に対する指定された特権ごとに WITH GRANT OPTION
- グローバル変数が含まれるスキーマに対するスキーマ ACCESSCTRL 権限
- ACCESSCTRL または SECADM 権限
構文
説明
- ALL PRIVILEGES
- 指定したグローバル変数に対してすべての特権を付与します。
- READ
- 指定したグローバル変数の値を読み取る特権を付与します。
- WRITE
- 指定したグローバル変数に値を割り当てる特権を付与します。
- ON VARIABLE variable-name
- 1 つ以上の特権が付与されるグローバル変数を指定します。 暗黙修飾子または明示修飾子を含む variable-name は、現行サーバーに存在し、モジュール変数ではないグローバル変数を識別するものでなければなりません (SQLSTATE 42704)。
- TO
- 特権を誰に与えるかを指定します。
- USER
- authorization-name がユーザーであることを指定します。
- GROUP
- authorization-name がグループであることを指定します。
- ROLE
- authorization-name が現行サーバーにおける既存のロールを識別することを指定します (SQLSTATE 42704)。
- authorization-name,...
- 1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。 この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。
- PUBLIC
- 指定された特権をユーザー (許可 ID) の集合に付与します。
- WITH GRANT OPTION
- 指定した authorization-name に対し、特権を他のユーザーに与えることを許可します。 WITH GRANT OPTION 節を省略すると、指定した authorization-name は、他の何らかのソースからその権限を受け取らないかぎり、特権を他のユーザーに与えることはできません。
規則
- 指定した authorization-name ごとに、キーワード USER、GROUP、および ROLE のいずれも指定されていない場合には次のようになります。
- インスタンスに対して有効なセキュリティー・プラグインによって authorization-name の状況を判別できなければ、エラーが戻されます (SQLSTATE 56092)。
- authorization-name が、データベースでは ROLE として定義されており、かつオペレーティング・システムでは GROUP または USER のいずれかとして定義されている場合、エラーが戻されます (SQLSTATE 56092)。
- 有効になっているセキュリティー・プラグインに従って authorization-name が USER と GROUP の両方として定義されている場合は、エラーが戻されます (SQLSTATE 56092)。
- 有効になっているセキュリティー・プラグインに従って authorization-name が USER としてのみ定義されている場合、または未定義の場合は、USER であると見なされます。
- 有効になっているセキュリティー・プラグインに従って authorization-name が GROUP としてのみ定義されている場合は、GROUP であると見なされます。
- authorization-name がデータベースで ROLE としてのみ定義されている場合には、ROLE であると見なされます。
注
- グループに付与される特権: グループに付与される特権は、以下に対する許可検査には使用されません。
- パッケージ内の静的 DML ステートメント
- CREATE VIEW ステートメントの処理過程での基本表
- マテリアライズ照会表の CREATE TABLE ステートメントの処理過程での基本表
- SQL ルーチンの作成
- トリガーの作成
例
グローバル変数 MYSCHEMA.MYJOB_PRINTER に対する READ および WRITE 特権を、ユーザー ZUBIRI に付与します。
GRANT READ, WRITE ON VARIABLE MYSCHEMA.MYJOB_PRINTER TO ZUBIRI