REVOKE (スキーマ特権) ステートメント
この形式の REVOKE ステートメントは、スキーマに対する特権を取り消します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
- このステートメントの許可 ID が持つ特権には、ACCESSCTRL または SECADM 権限が含まれているか、または schema-name に対するスキーマ ACCESSCTRL 権限が含まれている必要があります。
- スキーマ ACCESSCTRL を取り消すには、許可に SECADM またはデータベース ACCESSCTRL 権限がなければなりません。
構文
説明
- ALL または ALL PRIVILEGES
- ON 節で指定されているスキーマに対するすべてのスキーマ特権を取り消します。
ALL の指定がない場合、 特権のリストに示されているキーワードの 1 つまたは複数を指定する必要があります。
- ACCESSCTRL
- スキーマ・レベルの特権を付与したり取り消したりする権限を取り消します。
- ALTERIN
- スキーマ中のオブジェクトの変更、またはコメント付けを行う特権を取り消します。
- CREATEIN
- スキーマにオブジェクトを作成する特権を取り消します。
- DATAACCESS
- スキーマ内のデータにアクセスする権限を取り消します。
- DELETEIN
- スキーマ内のオブジェクトをすべて削除する特権を取り消します。
- DROPIN
- スキーマのオブジェクトをドロップする特権を取り消します。
- EXECUTEIN
- スキーマで定義されるユーザー定義の関数、メソッド、プロシージャー、パッケージ、およびモジュールを実行する特権を取り消します。
- INSERTIN
- スキーマ内のすべてのオブジェクトの中にデータを挿入する特権を取り消します。
- LOAD
- このスキーマでロードを実行する権限を取り消します。
- SCHEMAADM
- スキーマ管理者権限を取り消します。
- SELECTIN
- スキーマ内のすべてのオブジェクトから選択する特権を取り消します。
- UPDATEIN
- スキーマ内のすべてのオブジェクトを更新する特権を取り消します。
- ON
-
- SCHEMA schema-name
- 特権を取り消す対象のスキーマの名前を指定します。
- CURRENT SCHEMA
- Db2® 特殊レジスター CURRENT SCHEMA によって示されるスキーマから特権が取り消されることを指定します。
- FROM
- 特権を誰から取り消すかを指定します。
- USER
- authorization-name がユーザーであることを指定します。
- GROUP
- authorization-name がグループ名であることを指定します。
- ROLE
- authorization-name がロール名であることを指定します。
- authorization-name,...
- 1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。
この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。
- PUBLIC
- PUBLIC から特権を取り消します。
- BY ALL
- 指定された個々の特権を、その付与者にかかわらず、 それらの特権を明示的に付与されたユーザーのうち指定された人から取り消します。 これがデフォルトの動作です。
規則
- 指定したそれぞれの 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 であると見なされます。
注
- 特定の特権の取り消しにより、アクションを実行する権限が取り消されるとは限りません。 PUBLIC、グループ、またはロールが他の特権を持っている場合、またはユーザーがより高いレベルの権限 (例えば DBADM) を持っている場合には、ユーザーは作業を続行できます。
例
- 例 1: USER4 がユーザーで、グループではない場合に、
ユーザー USER4 からスキーマ DEPTIDX にオブジェクトを作成する特権を取り消します。
REVOKE CREATEIN ON SCHEMA DEPTIDX FROM USER4 - 例 2: ユーザー CHEF とグループ WAITERS から、
スキーマ LUNCH のオブジェクトをドロップする特権を取り消します。
REVOKE DROPIN ON SCHEMA LUNCH FROM USER CHEF, GROUP WAITERS
