REVOKE (索引特権) ステートメント
この形式の REVOKE ステートメントは、索引に対する CONTROL 特権を取り消します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、ACCESSCTRL または SECADM 権限が含まれているか、または索引が含まれるスキーマに対する ACCESSCTRL 権限が含まれている必要があります。
構文
説明
- CONTROL
- 索引をドロップする特権を取り消します。 これは、索引に対する CONTROL 特権であり、 この特権は索引の作成者に自動的に付与されます。
- ON INDEX 索引名
- その CONTROL 特権を取り消す索引の名前を指定します。
- FROM
- 特権を誰から取り消すかを指定します。
- ユーザー
- authorization-name がユーザーであることを指定します。
- GROUP
- authorization-name がグループ名であることを指定します。
- ROLE
- authorization-name がロール名であることを指定します。
- 1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。
この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。
- PUBLIC
- PUBLIC から特権を取り消します。
- BY ALL
- 特権の付与者にかかわらず、 その特権を明示的に付与されたユーザーのうち指定された人から取り消します。 これがデフォルトの動作です。
ルール
- 指定したそれぞれの authorization-name に関して、USER、GROUP、ROLE のいずれも指定されていない場合には、次のようになります。
- 被認可者が authorization-name である SYSCAT.INDEXAUTH カタログ・ビュー内の指定されたオブジェクトのすべての行について、以下が該当します。
- すべての行の GRANTEETYPE が「U」の場合、USER であると見なされます。
- すべての行の GRANTEETYPE が「G」の場合、GROUP であると見なされます。
- すべての行の GRANTEETYPE が「R」の場合、ROLE であると見なされます。
- すべての行の GRANTEETYPE の値が同じでない場合、エラーが戻されます (SQLSTATE 56092)。
- 被認可者が authorization-name である SYSCAT.INDEXAUTH カタログ・ビュー内の指定されたオブジェクトのすべての行について、以下が該当します。
注
- 特定の特権の取り消しにより、アクションを実行する権限が取り消されるとは限りません。 PUBLIC、グループ、またはロールが他の特権を持っている場合、またはユーザーが索引のスキーマに対する ALTERIN などの権限を持っている場合には、ユーザーは作業を続行できます。
例
- 例 1: USER4 はユーザーであり、グループではない場合に、
ユーザー USER4 から索引 DEPTIDX をドロップする特権を取り消します。
REVOKE CONTROL ON INDEX DEPTIDX FROM KIESLER
- 例 2: 索引 LUNCHITEMS をユーザー CHEF およびグループ WAITERS からドロップするための特権を取り消します。
REVOKE CONTROL ON INDEX LUNCHITEMS FROM USER CHEF, GROUP WAITERS