【问题标题】:Postgres query about the roles of each userPostgres 查询每个用户的角色
【发布时间】:2017-06-17 09:12:18
【问题描述】:

我正在尝试进行查询以显示用户及其拥有的所有角色。我已经知道如何询问特定用户的角色:

SELECT oid, rolname FROM pg_roles WHERE
pg_has_role( 'name_of_user', oid, 'member');

知道怎么做吗?

【问题讨论】:

标签: sql postgresql roles


【解决方案1】:

运行 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}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 2017-08-28
    • 1970-01-01
    • 2013-03-13
    相关资源
    最近更新 更多