0
我試圖做一個查詢,顯示用戶和他們所有的角色。我已經知道如何問一個特定用戶的角色:Postgres查詢有關每個用戶的角色
SELECT oid, rolname FROM pg_roles WHERE
pg_has_role('name_of_user', oid, 'member');
任何想法如何做到這一點?
我試圖做一個查詢,顯示用戶和他們所有的角色。我已經知道如何問一個特定用戶的角色:Postgres查詢有關每個用戶的角色
SELECT oid, rolname FROM pg_roles WHERE
pg_has_role('name_of_user', oid, 'member');
任何想法如何做到這一點?
運行psql -E
看到元命令後面語句PSQL:
vao=# \du
********* QUERY **********
SELECT r.rolname, r.rolsuper, r.rolinherit,
r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
r.rolconnlimit, r.rolvaliduntil,
ARRAY(SELECT b.rolname
FROM pg_catalog.pg_auth_members m
JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
WHERE m.member = r.oid) as memberof
, r.rolreplication
, r.rolbypassrls
FROM pg_catalog.pg_roles r
ORDER BY 1;
**************************
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
ro | Cannot login | {}
rw | Cannot login | {}
vao | Superuser, Create role, Create DB, Replication, Bypass RLS | {ro,rw}
添加http://dba.stackexchange.com/questions/56096/how-to-get-all-roles-that-a- user-is-a-member-of-including-inherited-roles/56104#56104將您的問題作爲查詢的來源 –