REVOKE

Name

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

Synopsis

REVOKE privilege [, ...]
    ON object [, ...]
    FROM { PUBLIC | GROUP groupname | 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"}      |
+------------------+---------------------------------------------+
Legend:
     uname=arwR -- privileges granted to a user(ユーザに与えられた権限)
     group gname=arwR -- privileges granted to a GROUP(グループに与えられた権限)
     =arwR -- privileges granted to PUBLIC(全てのユーザ (PUBLIC) に与えられた権限)
		  
     r -- SELECT
     w -- UPDATE/DELETE
     a -- INSERT
     R -- RULE
     arwR -- ALL
    

Tip: 現在のところ、グループを作成するには下記のように pg_groupテーブルに手動でデータを追加しなければなりません。 [訳注:バージョン7.0からCREATE GROUPを使ってグループにデータを追加できます。 また、上記の表では「Grant/Revoke Permissions」となっていますが、現在は 「Access permissions」となっています。]

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