7.3. 権限

データベースオブジェクトが作成されるとその所有者が設定されます。 所有者はその作成文を実行したユーザです。現在のところデータベース オブジェクトの所有者を変更するための洗練されたインタフェースは まだありません。デフォルトでは、所有者(もしくはスーパーユーザ)のみが そのオブジェクトに対して変更を加えることができます。[訳注:7.1からは alter table文でテーブルの所有者権限が変更できるようになっています。]その他のユーザが それを使うためには権限が与えられていなければ なりません。

現段階では、四つの異なる権限があります。select (読み込み)、insert (追加)、 そして update/delete (書き込み)、そしてテーブルに対しての決まりを書き換える ための権限であるRULEです。オブジェクトを 変更もしくは削除する権利は常に所有者にしかありません。権限を 与えるためには、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;
テーブル所有者が保持する権限の集合は、常に明示的であり無効にすることは できません。