GRANT

Name

GRANT  --  Grants access privilege to a user, a group or all users ユーザ、グループあるいはすべてのユーザにアクセス権限を与える

Synopsis

GRANT privilege [, ...] ON object [, ...]
    TO { PUBLIC | GROUP group | username }
  

入力

privilege

The possible privileges are:

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

SELECT

Access all of the columns of a specific table/view.

特定のテーブル/ビュー内のすべてのカラムにアクセス可能 にします。

INSERT

Insert data into all columns of a specific table.

特定のテーブル内のすべてのカラムにデータを挿入可能に します。

UPDATE

Update all columns of a specific table.

特定のテーブル内のすべてのカラムを更新可能にします。

DELETE

Delete rows from a specific table.

特定のテーブルの行を削除可能にします。

RULE

Define rules on the table/view (See CREATE RULE statement).

テーブル/ビューにルール (CREATE RULE 文を参照) を定義 します。

ALL

Grant all privileges.

すべての権限を与えます。

object

The name of an object to which to grant access. The possible objects are:

アクセス権限を与えるオブジェクトの名前。 使用可能なオブジェクトは以下の物です:

  • テーブル (table)

  • ビュー (view)

  • シーケンス (sequence)

  • インデックス (index)

PUBLIC

A short form representing all users.

全てのユーザを意味する短縮形です。

GROUP group

A group to whom to grant privileges. In the current release, the group must be created explicitly as described below.

権限を与える グループ名 。 現在のバージョンでは、グループは後述されるように 明示的に作成されなければなりません。

username

The name of a user to whom grant privileges. PUBLIC is a short form representing all users.

権限を与えるユーザ名。PUBLIC はすべてのユーザを表現する 短縮形です。

出力

CHANGE

Message returned if successful.

成功した場合に出力されるメッセージ。

ERROR: ChangeAcl: class "object" not found

Message returned if the specified object is not available or if it is impossible to give privileges to the specified group or users.

指定したオブジェクトが利用できない、あるいは指定した グループまたはユーザに対して権限を与えることができない場合に 出力されるメッセージ。

説明

GRANT allows the creator of an object to give specific permissions to all users (PUBLIC) or to a certain user or group. Users other than the creator don't have any access permission unless the creator GRANTs permissions, after the object is created.

GRANT はオブジェクトの作成者にすべての ユーザ (PUBLIC) 、あるいはいくつかのユーザまたはグループに 対し、特定の権限を与えることを許します。 作成者以外のユーザは、作成者がオブジェクトを作成後、権限を GRANTで与えない限り、どんなアクセス権限も持っていません。

Once a user has a privilege on an object, he is enabled to exercise that privilege. There is no need to GRANT privileges to the creator of an object, the creator automatically holds ALL privileges, and can also drop the object.

ひとたびユーザがオブジェクトに限権を所有すると、ユーザは、 その権限を行使することができるようになります。 オブジェクトの作成者には権限を与える必要はありません。作成者は 自動的にすべての権限を持っており、さらにそのオブジェクトを削除 することもできます。

注意

Currently, to grant privileges in Postgres to only few columns, you must create a view having desired columns and then grant privileges to that view.

現在は、Postgres のいくつかの カラムだけに権限を与えるためには、対象となるカラムを持つ ビューを作成してから、そのビューに対し権限を与えなくては なりません。

Use psql \z for further information about permissions on existing objects:

既存のオブジェクトに対する権限についての詳しい情報を知るには 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

                  r -- SELECT
                  w -- UPDATE/DELETE
                  a -- INSERT
                  R -- RULE
               arwR -- ALL
   凡例:
        ユーザ名=arwR -- ユーザに与えられた権限
group グループ名=arwR -- グループに与えられた権限
                =arwR -- 全てのユーザ (PUBLIC) に与えられた権限

                    r -- SELECT
                    w -- UPDATE/DELETE
                    a -- INSERT
                    R -- RULE
                 arwR -- ALL
    

Tip: Currently, to create a GROUP you have to insert data manually into table pg_group as:

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

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

Refer to REVOKE statements to revoke access privileges.

アクセス権限を取り上げるには、REVOKE 文を参照してください。

使用法

Grant insert privilege to all users on table films:

テーブル films にデータを追加する権限を全てのユーザに与える:

GRANT INSERT ON films TO PUBLIC;
   

Grant all privileges to user manuel on view kinds:

ビュー kinds の全ての権限を、ユーザ manuel に与える:

GRANT ALL ON kinds TO manuel;
   

互換性

SQL92

The SQL92 syntax for GRANT allows setting privileges for individual columns within a table, and allows setting a privilege to grant the same privileges to others:

SQL92 の文法では、GRANT は テーブル中の 個々のカラムに対して権限を設定すること、そして権限を与えられ たユーザが同じ権限を他のユーザに与えることを許しています。

GRANT privilege [, ...]
    ON object [ ( column [, ...] ) ] [, ...]
    TO { PUBLIC | username [, ...] } [ WITH GRANT OPTION ]
    

Fields are compatible with the those in the Postgres implementation, with the following additions:

設定項目は Postgres に実装されている物と 互換性があり、さらに以下のような物も付加されています:

privilege

SQL92 permits additional privileges to be specified:

SQL92 は、以下のような追加の権限の 指定も認めています:

SELECT

REFERENCES

Allowed to reference some or all of the columns of a specific table/view in integrity constraints.

一貫性制約の中で、指定した テーブル/ビューのいくつか あるいは全てのカラムを参照することを許します。

USAGE

Allowed to use a domain, character set, collation or translation. If an object specifies anything other than a table/view, privilege must specify only USAGE.

ドメイン、文字セット、照合あるいは翻訳を使うことを 許します。 もし対象がテーブルまたはビュー以外のものを指定する場合 privilege には USAGE だけを指定しなくてはなりません。

object

[ TABLE ] table

SQL92 allows the additional non-functional keyword TABLE.

SQL92 では、TABLE という追加の、関数では無いキーワードを許します。

CHARACTER SET

Allowed to use the specified character set.

指定の文字セットを使うことを許します。

COLLATION

Allowed to use the specified collation sequence.

指定の照合順を使うことを許します。

TRANSLATION

Allowed to use the specified character set translation.

指定した文字セット翻訳の使用を許します。

DOMAIN

Allowed to use the specified domain.

指定したドメインを使うことを許します。

WITH GRANT OPTION

Allowed to grant the same privilege to others.

権限を与えられたユーザが、さらに他のユーザにも 同じ権限を与えることを許します。