SQL 解説書

REVOKE (表、視点、またはニックネーム特権)

この形式の REVOKE ステートメントは、表、視点、またはニックネームに対する特権を取り消します。

呼び出し

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

許可

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

CONTROL 特権を取り消すには、SYSADM または DBADM のいずれかの権限が必要です。

カタログの表や視点に対する特権を取り消すには、 SYSADM または DBADM のいずれかの権限が必要です。

他の GRANT ステートメントについては、REVOKE (データベース権限)REVOKE (索引特権)REVOKE (パッケージ特権)REVOKE (スキーマ特権)、および REVOKE (サーバー特権)を参照してください。

構文

                    .-PRIVILEGES--.          .-TABLE--.
>>-REVOKE----+-ALL--+-------------+-+--ON----+--------+--------->
             |  .-,---------------. |
             |  V                 | |
             '----+-ALTER------+--+-'
                  +-CONTROL----+
                  +-DELETE-----+
                  +-INDEX------+
                  +-INSERT-----+
                  +-REFERENCES-+
                  +-SELECT-----+
                  '-UPDATE-----'
 
>-----+-table-name-+-------------------------------------------->
      +-view-name--+
      '-nickname---'
 
           .-,------------------------------------.
           V                                      |
>----FROM----+-+-------+---authorization-name--+--+------------><
             | +-USER--+                       |
             | '-GROUP-'                       |
             '-PUBLIC--------------------------'
 

説明

ALL または ALL PRIVILEGES
指定された表、視点、またはニックネームに対して authorization-name に与えられている特権をすべて取り消します。

ALL を使用しない場合、以下に示す 1 つまたは複数のキーワードを使用する必要があります。 各キーワードは、それぞれ説明されている特権を取り消しますが、 その取り消しは ON 文節に指定する表、視点、またはニックネームに当てはまる場合にのみ行われます。 同じキーワードを複数回指定することはできません。

ALTER
基礎表の定義への列の追加、 表の基本キーまたは固有制約の作成または除去、 表の外部キーの作成または除去、表、視点、またはニックネームに対するコメントの追加や変更、 検査制約の作成または除去、トリガーの作成、リセットの追加、ニックネームの列オプションの除去、 またはニックネームの列名やデータ・タイプの変更を行うための特権を取り消します。

CONTROL
表、視点、またはニックネームを除去する権限、 および表または索引に対して RUNSTATS ユーティリティーを実行する権限を取り消します。

authorization-name から CONTROL 特権を取り消しても、 そのオブジェクトに対してそのユーザーに付与されているその他の特権は取り消されません。

DELETE
表または更新可能な視点から行を削除する特権を取り消します。

INDEX
表の索引、またはニックネームの索引指定を作成する特権を取り消します。 索引または索引指定の作成者には、 その索引または索引指定に対する CONTROL 特権が自動的に与えられます (これにより、 作成者は索引または索引指定を除去できます)。 さらに、INDEX 特権が取り消されても、作成者は CONTROL 特権をそのまま保持します。

INSERT
表または更新可能な視点に行を挿入したり、 IMPORT ユーティリティーを実行したりする特権を取り消します。

REFERENCES
親として表を参照する外部キーの作成、または除去を行う特権を取り消します。 列レベルの REFERENCES 特権もすべて取り消されます。

SELECT
表または視点からの行の検索、表に対する視点の作成、 および表または視点に対して EXPORT ユーティリティーを実行する特権を取り消します。

SELECT 特権を取り消すと、視点によっては作動不能になるものがあります。 作動不能な視点については、 を参照してください。

UPDATE
表または更新可能な視点の行を更新する特権を取り消します。 列レベルの UPDATE 特権もすべて取り消されます。

ON TABLE table-name または view-name または nickname
特権を取り消す表、視点、またはニックネームを指定します。 table-name には、宣言された一次表を指定することはできません (SQLSTATE 42995)。

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

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

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

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

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

PUBLIC
PUBLIC から特権を取り消します。

規則

注:表や視点などのオブジェクト相互の可能な従属関係についてのリストは、 規則 に示されています。

例 1: ユーザー ENGLES から、表 EMPLOYEE に対する SELECT 特権を取り消します。 SYSCAT.TABAUTH カタログ視点にはこの表とユーザーについての行が 1 行あり、 その GRANTEETYPE の値は U です。

   REVOKE SELECT
     ON TABLE EMPLOYEE
     FROM ENGLES

例 2: 以前にすべてのローカル・ユーザーに与えられた表 EMPLOYEE に対する更新特権を取り消します。 特定のユーザーに対する特権付与には影響を与えない点に注意してください。

   REVOKE UPDATE
     ON EMPLOYEE
     FROM PUBLIC

例 3: ユーザー PELLOW と MLI、およびグループ PLANNERS から、 表 EMPLOYEE に対する特権をすべて取り消します。

   REVOKE ALL
     ON EMPLOYEE
     FROM USER PELLOW, USER MLI, GROUP PLANNERS

例 4: JOHN という名前のユーザーから、 表 CORPDATA.EMPLOYEE に対する SELECT 特権を取り消します。 SYSCAT.TABAUTH カタログ視点にはこの表とユーザーについての行が 1 行あり、 その GRANTEETYPE の値は U です。

   REVOKE SELECT
     ON CORPDATA.EMPLOYEE FROM JOHN

または

   REVOKE SELECT
     ON CORPDATA.EMPLOYEE FROM USER JOHN

GROUP JOHN には特権が与えられていないので、 GROUP JOHN から特権を取り消そうとしてもエラーになります。

例 5: JOHN という名前のグループから、 表 CORPDATA.EMPLOYEE に対する SELECT 特権を取り消します。 SYSCAT.TABAUTH カタログ視点にはこの表とユーザーについての行が 1 行あり、 その GRANTEETYPE の値は G です。

   REVOKE SELECT
     ON CORPDATA.EMPLOYEE FROM JOHN

または

   REVOKE SELECT
    ON CORPDATA.EMPLOYEE FROM GROUP JOHN

例 6: ユーザー SHAWN から、 ニックネーム ORAREM1 の索引指定を作成する特権を取り消します。

   REVOKE INDEX
     ON ORAREM1 FROM USER SHAWN


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