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