ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

PostgreSQL でユーザ一覧とロール一覧を表示する方法

PostgreSQL でユーザ一覧とロール一覧は以下のコマンドで表示させます。

方法

ユーザ一覧

pg_user 参照

pg_user を参照する事でユーザ一覧を確認できます。

select usename from pg_user;
psql のメタコマンド

psql のメタコマンドでもユーザ一覧が出力できます。

\du

ロール一覧

pg_roles 参照

システムカタログ pg_roles から取得します。
PostgreSQL のシステムカタログの一つである 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 の値を取得するクエリは以下のとおりです。

select 
  rolname, 
  rolsuper, 
  rolcanlogin 
from 
  pg_roles;