PostgreSQLでの権限付与と削除について

PostgreSQLでの権限付与と削除について

1. GRANTによる権限の付与

2. REVOKEによる権限の削除

GRANTによる権限の付与

PostgreSQLでは、ユーザーやロールに対してさまざまな権限を付与できます。これにより、ユーザーがデータベース内でどのような操作を実行できるかを制御します。

一般的な使用方法は、GRANT文を使って権限を付与することです。基本的な構文は次のようになります:

    GRANT 権限 ON 対象テーブル TO ユーザー;
    

例えば、employeesというテーブルに対して、ユーザーjohnに対してSELECT権限を付与する場合は次のように記述します:

    GRANT SELECT ON employees TO john;
    

この場合、johnemployeesテーブルのデータを参照することができるようになります。

他にも、以下のような権限があります:

  • SELECT – データの読み取り(SELECT文の実行)
  • INSERT – データの挿入(INSERT文の実行)
  • UPDATE – データの更新(UPDATE文の実行)
  • DELETE – データの削除(DELETE文の実行)
  • ALL PRIVILEGES – 上記すべての権限

例えば、SELECTINSERTの権限を付与する場合は次のようになります:

    GRANT SELECT, INSERT ON employees TO john;
    

また、ALL PRIVILEGESを使ってすべての権限を一度に付与することもできます:

    GRANT ALL PRIVILEGES ON employees TO john;
    

さらに、権限は複数のユーザーに同時に付与することも可能です:

    GRANT SELECT, INSERT ON employees TO john, mary;
    

これにより、johnmaryの両方にemployeesテーブルに対するSELECTおよびINSERTの権限が付与されます。

REVOKEによる権限の削除

PostgreSQLでは、付与した権限を後から削除することもできます。この場合はREVOKE文を使用します。

基本的な構文は次のようになります:

    REVOKE 権限 ON 対象テーブル FROM ユーザー;
    

例えば、ユーザーjohnからemployeesテーブルに対するSELECT権限を削除する場合は次のように記述します:

    REVOKE SELECT ON employees FROM john;
    

これにより、johnemployeesテーブルに対する参照(SELECT)ができなくなります。

同様に、SELECTINSERT権限を削除する場合は次のように記述します:

    REVOKE SELECT, INSERT ON employees FROM john;
    

また、すべての権限を削除する場合はALL PRIVILEGESを使用します:

    REVOKE ALL PRIVILEGES ON employees FROM john;
    

重要なのは、REVOKE文を実行した時点で、削除された権限は即座に反映され、ユーザーがその操作を実行できなくなる点です。

もし、すべてのユーザーから権限を削除したい場合は、次のように記述することができます:

    REVOKE ALL PRIVILEGES ON employees FROM PUBLIC;
    

PUBLICは、すべてのユーザーを指す特別なキーワードであり、これを使うことで、データベース内のすべてのユーザーから権限を削除できます。

コメントは受け付けていません。