PostgreSQLのロール管理

PostgreSQLのロール管理

ロール一覧を表示する (\du)

PostgreSQLでは、ユーザーや権限管理を「ロール」という概念で管理します。現在のロール一覧を確認するには、以下のコマンドを使用します。

\du

このコマンドを実行すると、データベース内のロール一覧が表示されます。出力例:


 Role name | Attributes  | Member of 
-----------+------------+-----------
 admin     | Superuser  | {}
 user1     |            | {readers}
 readers   |            | {}
    

この例では、admin はスーパーユーザー権限を持ち、user1readers というロールに所属しています。

ロールを作成する (CREATE ROLE)

新しいロールを作成するには CREATE ROLE コマンドを使用します。基本的な構文は以下の通りです。

CREATE ROLE role_name;

例えば、developer というロールを作成するには以下のように実行します。

CREATE ROLE developer;

デフォルトでは、このロールにはログイン権限がありません。ログイン可能なユーザーを作成するには LOGIN を指定します。

CREATE ROLE user2 WITH LOGIN PASSWORD 'password123';

その他のオプション:

  • SUPERUSER: スーパーユーザー権限を持たせる
  • CREATEDB: データベース作成権限を付与
  • CREATEROLE: 他のロールを作成できる権限を付与
  • INHERIT: 継承権限

例:

CREATE ROLE manager WITH LOGIN PASSWORD 'securepass' CREATEDB;

ロールを削除する (DROP ROLE)

不要になったロールを削除するには DROP ROLE を使用します。

DROP ROLE role_name;

例えば、user2 というロールを削除するには以下のように実行します。

DROP ROLE user2;

注意点:

  • ロールがデータベースオブジェクト(テーブルなど)を所有している場合、削除できません。
  • 削除前に、ALTER TABLE などで所有者を変更する必要があります。

所有者変更例:

ALTER TABLE employees OWNER TO admin;

このようにすることで、ロールを安全に削除できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です