REVOKE (スキーマ特権および権限) ステートメント

この形式の REVOKE ステートメントは、スキーマに対する特権と権限を取り消します。

呼び出し

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

許可

  • このステートメントの許可 ID が持つ特権には、ACCESSCTRL または SECADM 権限が含まれているか、schema-name に対する ACCESSCTRL 権限が含まれている必要があります。
  • スキーマ ACCESSCTRL を取り消すには、許可に SECADM またはデータベース ACCESSCTRL 権限がなければなりません。

構文

Read syntax diagramSkip visual syntax diagram REVOKE ALLPRIVILEGES,ACCESSCTRLALTERINCREATEINDATAACCESSDELETEINDROPINEXECUTEININSERTINLOADSCHEMAADMSELECTINUPDATEIN ON SCHEMAschema-nameCURRENT SCHEMA FROM ,USERGROUPROLEauthorization-namePUBLIC BY ALL

説明

ALL または ALL PRIVILEGES
ON 節で指定されているスキーマに対する以下のすべてのスキーマ特権を取り消します。
  • ALTERIN
  • CREATEIN
  • DELETEIN
  • DROPIN
  • EXECUTEIN
  • INSERTIN
  • SELECTIN
  • UPDATEIN

すべて を指定しない場合は、特権リスト内の 1 つ以上のキーワードを指定する必要があります。

ACCESSCTRL
スキーマ・レベルの特権を付与したり取り消したりする権限を取り消します。 詳しくは、 スキーマ・アクセス制御権限 (ACCESSCTRL)を参照してください。
ALTERIN
スキーマ中のオブジェクトの変更、またはコメント付けを行う特権を取り消します。
CREATEIN
スキーマにオブジェクトを作成する特権を取り消します。
DATAACCESS
スキーマ内のデータにアクセスする権限を取り消します。 詳しくは、 スキーマ・データ・アクセス権限 (DATAACCESS)を参照してください。
DELETEIN
スキーマ内のオブジェクトをすべて削除する特権を取り消します。
DROPIN
スキーマのオブジェクトをドロップする特権を取り消します。
EXECUTEIN
スキーマで定義されるユーザー定義の関数、メソッド、プロシージャー、パッケージ、およびモジュールを実行する特権を取り消します。
INSERTIN
スキーマ内のすべてのオブジェクトの中にデータを挿入する特権を取り消します。
LOAD
このスキーマでロードを実行する権限を取り消します。 詳しくは、 スキーマ・ロード権限 (LOAD)を参照してください。
SCHEMAADM
スキーマ管理者権限を取り消します。 詳しくは、 スキーマ管理者権限 (SCHEMAADM)を参照してください。
SELECTIN
スキーマ内のすべてのオブジェクトから選択する特権を取り消します。
UPDATEIN
スキーマ内のすべてのオブジェクトを更新する特権を取り消します。
ON
SCHEMA スキーマ名
特権を取り消す対象のスキーマの名前を指定します。
CURRENT SCHEMA
DB2® 特殊レジスター CURRENT SCHEMA によって示されるスキーマから特権が取り消されることを指定します。
FROM
特権を誰から取り消すかを指定します。
ユーザー
authorization-name がユーザーであることを指定します。
GROUP
authorization-name がグループ名であることを指定します。
ROLE
authorization-name がロール名であることを指定します。
権限名
1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。

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

PUBLIC
PUBLIC から特権を取り消します。
BY ALL
指定された個々の特権を、その付与者にかかわらず、 それらの特権を明示的に付与されたユーザーのうち指定された人から取り消します。 これがデフォルトの動作です。

ルール

  • 指定された 許可名 ごとに、 ユーザーグループROLE のいずれも指定されていない場合は、以下のようになります。
    • インスタンスに対して有効なセキュリティー・プラグインによって authorization-name の状況を判別できなければ、エラーが戻されます (SQLSTATE 56092)。
    • 許可名 がデータベースで ROLE として定義されていて、有効なセキュリティー・プラグインに従って GROUP または USER のいずれかとして定義されている場合は、エラーが戻されます (SQLSTATE 56092)。
    • 許可名 が、有効なセキュリティー・プラグインに従って USER と GROUP の両方として定義されている場合、エラーが戻されます (SQLSTATE 56092)。
    • 許可名 が、有効なセキュリティー・プラグインに従って USER のみとして定義されている場合、または未定義の場合は、USER が想定されます。
    • 許可名 が、有効なセキュリティー・プラグインに従って 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