REVOKE

Name

REVOKE  --  ユーザ、グループ、もしくは全てのユーザからアクセス権限を取り上げる。

Synopsis

REVOKE privilege [, ...]
    ON object [, ...]
    FROM { PUBLIC | GROUP ER">gBLE> | username }
  

入力

privilege

設定可能な権限は以下のものです。

SELECT

特定のテーブル/ビュー内の全てのカラムへのアクセスを行 なう権限。

INSERT

特定のテーブル内の全てのカラムにデータを挿入する権限。

UPDATE

特定のテーブル内の全てのカラムの更新を行なう権限。

DELETE

特定のテーブルの行を削除する権限。

RULE

テーブル/ビューにルールを設定する権限。 ( CREATE RULE を参照して下さい。)

ALL

全ての権限を無効にします。

object

アクセス権限を取り上げるオブジェクトの名前。使用可能なオブ ジェクトは以下のものです。

  • テーブル

  • ビュー

  • シーケンス

  • インデックス

group

権限を取り上げるグループの名前。

username

権限を取り上げるユーザの名前。全ユーザを指定するには、 PUBLIC キーワードを使用して下さい。

PUBLIC

全ユーザの指定された(複数の)権限を無効にします。

出力

CHANGE

成功時に返されるメッセージ。

ERROR

指定されたオブジェクトが利用不可能であった場合、もしくは、 グループまたはユーザの権限を取り上げることができなかった場 合に返されるメッセージ。

説明

REVOKE を使って、オブジェクトの作成者は、以前 に( PUBLIC 経由で)全てのユーザ、あるいは、特定のユーザまたはグ ループに与えられた権限を取り上げることができます。

注意

既存のオブジェクトに対する権限についての詳しい情報を知るには、 psql \z を使用します。

Database    = lusitania
+------------------+---------------------------------------------+
|  Relation        |        Grant/Revoke Permissions             |
+------------------+---------------------------------------------+
| mytable          | {"=rw","miriam=arwR","group todos=rw"}      |
+------------------+---------------------------------------------+
凡例:
     uname=arwR -- ユーザに与えられた権限
     group gname=arwR -- グループに与えられた権限
     =arwR -- 全てのユーザ (PUBLIC) に与えられた権限
		  
     r -- SELECT
     w -- UPDATE/DELETE
     a -- INSERT
     R -- RULE
     arwR -- ALL
   
    

Tip: 現在、GROUP(グループ)を作成するには、pg_group テーブルに手 作業でデータを追加しなければなりません。

INSERT INTO pg_group VALUES ('todos');
CREATE USER miriam IN GROUP todos;
     

使用法

テーブル films にデータを追加する権限を全ての ユーザから取り上げる。

REVOKE INSERT ON films FROM PUBLIC;
  

ビュー kinds の全ての権限をユーザ manuel から取り上げる。

  
REVOKE ALL ON kinds FROM manuel;
   

互換性

SQL92

SQL92 の文法では REVOKE は、更にテーブル内の 各カラムに対する権限についても無効にすることができます。

REVOKE { SELECT | DELETE | USAGE | ALL PRIVILEGES } [, ...]
    ON object
    FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
REVOKE { INSERT | UPDATE | REFERENCES } [, ...] [ ( column [, ...] ) ]
    ON object
    FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
       

個々のフィールドについての詳細については GRANT を参照して下さい。

REVOKE GRANT OPTION FOR privilege [, ...]
    ON object
    FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
       

あるユーザが特定の権限を他のユーザに付与できるようにする権限を 無効にします。個々のフィールドについての詳細については GRANT を参照して下さい。

設定可能なオブジェクトは以下のものです。

[ TABLE ] テーブル/ビュー
CHARACTER SET 文字セット
COLLATION 照合順
TRANSLATION 翻訳
DOMAIN ドメイン

user1 が user2 に WITH GRANT OPTION 権限を付与し、そして、user2 が user3 にこの権限を付与した場合、user1 は CASCADE キーワードを使 用して数珠つなぎに権限を取り上げることができます。

user1 が user2 に WITH GRANT OPTION 権限を付与し、そして、user2 が user3 にこの権限を付与した場合、user1 は RESTRICT キーワードを つけると権限の取り上げに失敗します。