★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

17.4. 権限

オブジェクトが作成されるとその所有者が割り当てられます。 所有者はその作成文を実行したユーザです。 ほとんどの種類のオブジェクトの初期状態では、そのオブジェクトに対して所有者(またはスーパーユーザ)だけが捜査を行うことができます。 その他のユーザがオブジェクトを使うためには、権限が与えられていなければいけません。 いくつかの異なる種類の権限があります。 SELECTINSERTUPDATEDELETERULEREFERENCESTRIGGERCREATETEMPORARYEXECUTEUSAGEです。 PostgreSQLでサポートされている様々な権限についての詳細情報は、GRANTを参照してください。

権限を与えるためには、GRANTコマンドが使われます。 もしjoeというユーザがいてaccountsというテーブルがあった場合、このテーブルを更新する権限は下記のように与えることができます。

GRANT UPDATE ON accounts TO joe;

グループに権限を与える場合は以下のようにします。

GRANT SELECT ON accounts TO GROUP staff;

特別なPUBLICという名前は、システム上の全てのユーザに権限を与えるために使われます。 指定する権限にALLと記述すると、そのオブジェクトに適用される全ての権限が与えられます。

権限を無効にするためには名前の通りのREVOKEコマンド(剥奪という意味)を使用してください。

REVOKE ALL ON accounts FROM PUBLIC;

オブジェクト所有者の特別な権限(つまりオブジェクトの編集や削除を行う権利)は常に暗黙的に所有者であることを示すものであり、許可することも取り去ることもできません。 しかし、所有者は自身の通常の権限を取り去ることができます。 例えば、他のユーザと同じように所有者自身も読み取りのみのテーブルを作成することができます。

ある種のオブジェクトでは、 ALTERコマンドを使用して、オブジェクトの新しい所有者を割り当てることができます。 これはスーパーユーザのみが行うことができます。