PostgreSQLのロール管理
ロール一覧を表示する (\du)
PostgreSQLでは、ユーザーや権限管理を「ロール」という概念で管理します。現在のロール一覧を確認するには、以下のコマンドを使用します。
\du
このコマンドを実行すると、データベース内のロール一覧が表示されます。出力例:
Role name | Attributes | Member of
-----------+------------+-----------
admin | Superuser | {}
user1 | | {readers}
readers | | {}
この例では、admin
はスーパーユーザー権限を持ち、user1
は readers
というロールに所属しています。
ロールを作成する (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;
このようにすることで、ロールを安全に削除できます。