PostgreSQL 8.1以降は、ユーザーとグループでなく、ロールでアクセス管理を行うようになっています。

ロールはユーザーとグループを併せ持ったようなものになります。 グループとユーザーのように分けると複雑になるので、グループ無しユーザーに相当するロールを作って管理するのが簡単です。

ロール確認

pgsqlでは、”\du”コマンドでロールの権限を確認することができます。 duコマンド以外ではシステムカタログを使う方法があります。

\du

言語設定が日本語になっている場合、以下のように表示されます。

postgres=# \du
                                               ロール一覧
 ロール名 |                                       属性                                       | メンバー

----------+----------------------------------------------------------------------------------+---------
-
 postgres | スーパーユーザ, ロールを作成できる, DBを作成できる, レプリケーション, Bypass RLS | {}
 testdb   |                                                                                  | {}

pg_user

データベースユーザーの情報を確認するには、ビューのpg_userが使えます。 pg_userは、パスワードを隠したpg_shadowと同じになります。

postgres=# select * from pg_user;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  | valuntil | useconfig
----------+----------+-------------+----------+---------+--------------+----------+----------+-----------
 postgres |       10 | t           | t        | t       | t            | ******** |          |
 testdb   |    16679 | f           | f        | f       | f            | ******** |          |
(2 行)
PostgreSQL ドキュメント・pg_user

pg_shadow

ビューのpg_shadowは、パスワードを隠さないpg_userになります。

postgres=# select * from pg_shadow;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |               passwd                | valuntil | useco
nfig
----------+----------+-------------+----------+---------+--------------+-------------------------------------+----------+------
-----
 postgres |       10 | t           | t        | t       | t            | md53175bce1d3201d16594cebf9d7eb3f9d |          |
 testdb   |    16679 | f           | f        | f       | f            |                                     |          |
(2 行)
PostgreSQL ドキュメント・pg_shadow