SQL 解説書

REVOKE (データベース権限)

この形式の REVOKE ステートメントは、データベース全体に適用される権限を取り消します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、 あるいは動的 SQL ステートメントの使用によって発行することができます。 このステートメントは、動的に作成できる実行可能ステートメントです。 しかし、バインド・オプション DYNAMICRULES BIND を適用する場合は、 ステートメントを動的に作成することはできません (SQLSTATE 42509)。

許可

このステートメントの許可 ID には、以下の特権が少なくとも 1 つ含まれている必要があります。

DBADM 権限を取り消すには、SYSADM 権限が必要です。

他の GRANT ステートメントについては、REVOKE (索引特権)REVOKE (パッケージ特権)REVOKE (スキーマ特権)REVOKE (サーバー特権)、および REVOKE (表、視点、またはニックネーム特権)を参照してください。

構文

             .-,----------------------.
             V                        |
>>-REVOKE------+-BINDADD-----------+--+--ON DATABASE------------>
               +-CONNECT-----------+
               +-CREATETAB---------+
               +-CREATE_NOT_FENCED-+
               +-IMPLICIT_SCHEMA---+
               +-DBADM-------------+
               '-LOAD--------------'
 
           .-,------------------------------------.
           V                                      |
>----FROM----+-+-------+---authorization-name--+--+------------><
             | +-USER--+                       |
             | '-GROUP-'                       |
             '-PUBLIC--------------------------'
 

説明

BINDADD
パッケージを作成する権限を取り消します。 パッケージの作成者には自動的にそのパッケージに対する CONTROL 特権が与えられ、 後でその BINDADD 権限が取り消されたとしてもその特権はそのまま保持されます。

DBADM 権限も取り消すのでない限り、 DBADM 権限を与えられている許可 ID から BINDADD 権限を取り消すことはできません。

CONNECT
データベースにアクセスする権限を取り消します。

ユーザーから CONNECT 権限を取り消しても、 そのユーザーに付与されていたデータベースのオブジェクトに対する特権には影響しません。 後で再度そのユーザーに CONNECT 権限が付与された場合でも、 以前に持っていた特権は、明示的に取り消されたのでない限り、 依然としてすべて有効です。

DBADM 権限も取り消すのでない限り、 DBADM 権限を与えられている許可 ID から CONNECT 権限を取り消すことはできません (SQLSTATE 42504)。

CREATETAB
表を作成する権限を取り消します。 表の作成者には自動的にその表に対する CONTROL 特権が与えられ、 後で CREATETAB 権限が取り消されたとしても、その特権はそのまま保持します。

DBADM 権限も取り消すのでない限り、 DBADM 権限を与えられている許可 ID から CREATETAB 権限を取り消すことはできません (SQLSTATE 42504)。

CREATE_NOT_FENCED
データベース・マネージャーの処理の中で実行する関数を登録する権限を取り消します。 ただし、関数が非分離としていったん登録されると、 それ以降にその関数を登録した許可 ID から CREATE_NOT_FENCED が取り消されるとしても、 そのまま実行が続けられます。

DBADM 権限も取り消すのでない限り、 DBADM 権限を与えられている許可 ID から CREATE_NOT_FENCED 権限を取り消すことはできません (SQLSTATE 42504)。

IMPLICIT_SCHEMA
スキーマを暗黙的に作成する権限を取り消します。 既存のスキーマにオブジェクトを作成する権限、 または CREATE SCHEMA ステートメントを処理する権限には影響しません。

DBADM
DBADM 権限を取り消します。

DBADM 権限を PUBLIC から取り消すことはできません (PUBLIC に対して与えることができないので、 当然取り消しもできません)。

DBADM 権限の取り消しによって、 データベース内のオブジェクトに対して authorization-name が持っていた特権が自動的に取り消されることはなく、 また BINDADD、CONNECT、CREATETAB、IMPLICIT_SCHEMA、 または CREATE_NOT_FENCED のいずれの権限も取り消されることもありません。

LOAD
このデータベースで LOAD を実行する権限を取り消します。

FROM
権限を誰から取り消すかを指定します。

USER
authorization-name がユーザーであることを指定します。

GROUP
authorization-name がグループ名であることを指定します。

authorization-name,...
1 つまたは複数の許可 ID をリストします。

REVOKE ステートメント自体の許可 ID は使用できません (SQLSTATE 42502)。 REVOKE ステートメントの許可 ID と同じである authorization-name から権限を取り消すことはできません。

PUBLIC
PUBLIC から該当の権限を取り消します。

規則

例 1: USER6 はユーザーであり、グループではない場合に、 ユーザー USER6 の表を作成する特権を取り消します。

  REVOKE CREATETAB ON DATABASE FROM USER6

例 2: D024 という名前のグループのデータベースに対する BINDADD 権限を取り消します。 SYSCAT.DBAUTH カタログ視点には、このグループの行として 2 つの行があります。 その 1 つでは GRANTEETYPE が U、もう 1 つでは GRANTEETYPE が G になっています。

  REVOKE BINDADD ON DATABASE FROM GROUP D024

この場合、GROUP キーワードの指定は必須です。 そうしないとエラーになります (SQLSTATE 56092)。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]