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"}      |
+------------------+---------------------------------------------+
凡例: 
     uname=arwR -- ユーザに与えられた権限
     group gname=arwR -- グループに与えられた権限
     =arwR -- 全てのユーザ (PUBLIC) に与えられた権限
		  
     r -- SELECT
     w -- UPDATE/DELETE
     a -- INSERT
     R -- RULE
     arwR -- ALL
    

Tip: 今のところ、グループを作成するには、以下のように 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 が WITH GRANT OPTION 権限を user2 に付与し、そして、 user2 が user3 にこの権限を付与した場合、user1 は RESTRICT キーワードを付けると、権限の取り上げに失敗します。