🐘
psqlでのロール情報確認メタコマンドの変更(PostgreSQL 17)
はじめに
PostgreSQL 16では、ロールに関する様々な変更が入りました。
そのため、psqlでロールの情報を表示するためのメタコマンドにも変更が加わっています。
\drg[S]
メタコマンドの追加
PostgreSQL 16ではロールを付与する際にINHERIT OPTIONやSET OPTIONを指定できるようになったので、それらの情報を見やすくするために追加されました。
カラム | 説明 |
---|---|
Role name | ロール名 |
Member of | 継承元のメンバ(Role nameはMember ofの権限を継承する) |
Options | ADMIN、INHERIT、SET |
Grantor | 付与者(Role nameにMember ofを付与したロール) |
出力は以下のようになります。
=> \drg
List of role grants
Role name | Member of | Options | Grantor
---------------+-------------------+---------------------+----------
postgres | rds_superuser | INHERIT, SET | rdsadmin
rds_superuser | pg_monitor | ADMIN, INHERIT, SET | rdsadmin
rds_superuser | pg_signal_backend | ADMIN, INHERIT, SET | rdsadmin
rds_superuser | rds_password | ADMIN, INHERIT, SET | rdsadmin
rds_superuser | rds_replication | ADMIN, INHERIT, SET | rdsadmin
rdstopmgr | pg_monitor | INHERIT, SET | rdsadmin
(6 rows)
=> \drg postgres
List of role grants
Role name | Member of | Options | Grantor
-----------+---------------+--------------+----------
postgres | rds_superuser | INHERIT, SET | rdsadmin
(1 row)
Sを付けることで、システムロールについても表示することができます。
=> \drgS
List of role grants
Role name | Member of | Options | Grantor
---------------+----------------------+---------------------+----------
pg_monitor | pg_read_all_settings | INHERIT, SET | rdsadmin
pg_monitor | pg_read_all_stats | INHERIT, SET | rdsadmin
pg_monitor | pg_stat_scan_tables | INHERIT, SET | rdsadmin
postgres | rds_superuser | INHERIT, SET | rdsadmin
rds_superuser | pg_monitor | ADMIN, INHERIT, SET | rdsadmin
rds_superuser | pg_signal_backend | ADMIN, INHERIT, SET | rdsadmin
rds_superuser | rds_password | ADMIN, INHERIT, SET | rdsadmin
rds_superuser | rds_replication | ADMIN, INHERIT, SET | rdsadmin
rdstopmgr | pg_monitor | INHERIT, SET | rdsadmin
(9 rows)
\du[S+]
、\dg[S+]
からMember ofカラムが削除
\drg[S]
メタコマンドでより詳細の情報を確認できるようになったので、\du[S+]
、\dg[S+]
からMember ofカラムが削除されました。
=> \du
List of roles
Role name | Attributes
-----------------+------------------------------------------------------------
has_bypassrls | Cannot login, Bypass RLS
postgres | Create role, Create DB +
| Password valid until infinity
rds_ad | Cannot login
rds_iam | Cannot login
rds_password | Cannot login
rds_replication | Cannot login
rds_superuser | Cannot login
rdsadmin | Superuser, Create role, Create DB, Replication, Bypass RLS+
| Password valid until infinity
rdsrepladmin | No inheritance, Cannot login, Replication
rdstopmgr |
参考文献
Discussion