権限

PostgreSQL 8.4.1文書
前のページ | 巻戻し | 第 20章データベースロールと権限 | 早送り | 次のページ

# 20.3. 権限

オブジェクトが作成されるとその所有者が割り当てられます。 所有者はその作成文を実行したロールです。 ほとんどの種類のオブジェクトにおける初期状態では、所有者（またはスーパーユーザ）のみがオブジェクトに対し何らかの操作を行うことができます。 その他のロールがオブジェクトを使うためには、権限が与えられていなければいけません。 さまざまな異なる種類の権限があります。 `SELECT`、`INSERT`、`UPDATE`、`DELETE`、`TRUNCATE`、`REFERENCES`、`TRIGGER`、`CREATE`、`CONNECT`、`TEMPORARY`、`EXECUTE`、`USAGE`です。 PostgreSQLでサポートされている様々な権限についての詳細情報は、GRANTマニュアルページを参照してください。

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

    GRANT UPDATE ON accounts TO joe;

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

権限を取り上げるためには名前の通りのREVOKEコマンド（剥奪という意味）を使用してください。

    REVOKE ALL ON accounts FROM PUBLIC;

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

ある種のオブジェクトでは、 `ALTER`コマンドを使用して、オブジェクトの新しい所有者を割り当てることができます。 スーパーユーザは通常これを行うことができます。 一般のロールでは、オブジェクトの現在の所有者（または所有者のロールのメンバ）であり、かつ、新しい所有者のロールのメンバである場合に限って、これを行うことができます。

前のページ | ホーム | 次のページ
ロールの属性 | 上に戻る | ロールのメンバ資格