GRANT (索引特権) ステートメント

この形式の GRANT ステートメントは、索引に対する CONTROL 特権を付与します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

索引が含まれるスキーマに対するステートメントの許可 ID 特権には、以下のいずれかが含まれている必要があります。
  • ACCESSCTRL 権限
  • SECADM 権限
  • スキーマ ACCESSCTRL 権限

構文

Read syntax diagramSkip visual syntax diagramGRANTCONTROLON INDEXindex-name TO ,USERGROUPROLEauthorization-namePUBLIC

説明

CONTROL
索引をドロップする特権を付与します。 これは、索引の作成者に自動的に与えられるその索引に対する CONTROL 権限です。
ON INDEX 索引名
CONTROL 特権を付与する対象となる索引の名前を指定します。
今後
特権を誰に与えるかを指定します。
ユーザー
authorization-name がユーザーであることを指定します。
GROUP
authorization-name がグループ名であることを指定します。
ROLE
authorization-name がロール名であることを指定します。 ロール名は、現行サーバーに存在するものでなければなりません (SQLSTATE 42704)。
権限名
1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。

この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。

PUBLIC
特権をユーザー (許可 ID) の集合に付与します。 詳細については、『権限、特権、およびオブジェクト所有権』を参照してください。

ルール

  • 指定したそれぞれの 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 ルーチンの作成
    • トリガーの作成
  • 索引特権を付与するとき、WITH GRANT OPTION は無視されます。

DEPTIDX 索引に対する CONTROL 特権を、ID が KIESLER であるユーザーに付与します。
   GRANT CONTROL ON INDEX DEPTIDX TO USER KIESLER