PostgreSQL | ロール(ユーザー) ROLE 作成 | 作成済みロールの確認
PostgreSQL で作成されたロール一覧を確認する方法について説明する。
\du コマンドを使用する
まず psql のメタコマンドを使用してロール一覧を確認する方法を説明する。次のように実行する。
devkuma=# \du
롤 목록
롤 이름 | 속성 | 소속 그룹:
-----------+------------------------------------------------+------------
kimkc | 슈퍼유저 | {}
kuma | | {}
orange | | {}
postgres | 슈퍼유저, 롤 만들기, DB 만들기, 복제, RLS 통과 | {}
superkuma | 롤 만들기, DB 만들기 | {}
devkuma=#
作成されたロール一覧が表示された。ロールごとに「ロール名、属性、所属グループ」の情報が表示される。
システムカタログ pg_roles から確認する
続いて、PostgreSQL のシステムカタログの 1 つである pg_roles からロール一覧を取得する方法である。pg_roles には次のような列がある。
| 名前 | 型 | 説明 |
|---|---|---|
| rolname | name | ロール名 |
| rolsuper | bool | スーパーユーザー権限の有無 |
| rolinherit | bool | メンバーであるロールの権限を継承するかどうか |
| rolcreaterole | bool | ロール作成権限の有無 |
| rolcreatedb | bool | データベース作成権限の有無 |
| rolcanlogin | bool | ログインできるロールかどうか |
| rolreplication | bool | レプリケーション用のロールかどうか |
| rolconnlimit | int4 | 最大同時接続数。-1 は無制限。 |
| rolpassword | text | パスワード。ただし ******** のように表示される。 |
| rolvaliduntil | timestamptz | パスワード期限。期限なしの場合は NULL。 |
| rolbypassrls | bool | すべての行レベルセキュリティポリシーを無視するかどうか |
| rolconfig | text[] | 実行時構成変数に対するロール別デフォルト |
| oid | oid | ロール ID |
カラム数が多いため、例として pg_roles から rolname、rolsuper、rolcanlogin の値を取得してみる。次のように実行する。
devkuma=# select rolname, rolsuper, rolcanlogin from pg_roles;
rolname | rolsuper | rolcanlogin
---------------------------+----------+-------------
pg_monitor | f | f
pg_read_all_settings | f | f
pg_read_all_stats | f | f
pg_stat_scan_tables | f | f
pg_read_server_files | f | f
pg_write_server_files | f | f
pg_execute_server_program | f | f
pg_signal_backend | f | f
postgres | t | t
kuma | f | t
superkuma | f | t
(11개 행)
devkuma=#
ロール一覧が表示された。今回は PostgreSQL インストール時に作成される postgres ロールと、後から作成した kuma および superkuma ロールのほかに、pg_ が付くロールが多数表示された。これらはデフォルトロールであり、自分で作成したロールに一時的に権限を付与する場合などに利用される。
デフォルトロール以外のロール一覧を表示する場合は、たとえば次のように実行する。
devkuma=# select rolname, rolsuper, rolcanlogin
devkuma-# from pg_roles
devkuma-# where rolname not like 'pg_%';
rolname | rolsuper | rolcanlogin
-----------+----------+-------------
postgres | t | t
kuma | f | t
superkuma | f | t
(3개 행)
devkuma=#
–
ここまで、PostgreSQL で作成されたロール一覧を確認する方法について説明した。