権限

PostgreSQL 8.0.0 文書
前のページ | 巻戻し | 第 17章データベースユーザと権限 | 早送り | 次のページ

# 17.4. 権限

データベースオブジェクトが作成されるとその所有者が割り当てられます。 所有者はその作成文を実行したユーザです。 テーブル、インデックス、シーケンス、またはビューの所有者を変更するには、`ALTER TABLE` コマンドを使用してください。 デフォルトでは、所有者（もしくはスーパーユーザ）のみがそのオブジェクトに対して変更を加えることができます。 その他のユーザがオブジェクトを使うためには、権限が与えられていなければいけません。

いくつかの異なる権限があります。 `SELECT`、`INSERT`、`UPDATE`、`DELETE`、`RULE`、`REFERENCES`、`TRIGGER`、`CREATE`、`TEMPORARY`、`EXECUTE`、`USAGE`、`ALL PRIVILEGES`です。 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;

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

前のページ | ホーム | 次のページ
グループ | 上に戻る | 関数とトリガ