我创建了一些简单的用户作为组的成员,并使用“postgres”用户执行此操作。我面临的问题是,当我使用“\du”或“\dg”等命令或任何类似命令时,不会在 CMD 中显示“成员”列,并且最多只有 3 列:“角色”名称”、“属性”和“描述”。我的 Postgresql 版本是 16.1。我该如何解决这个问题?
如果您使用
psql
参数启动 -E
,它将向您展示如何收集 member of
列的数据:demo
create role ted superuser;
create role bob;
grant ted to bob;
SELECT r.rolname,
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
FROM pg_catalog.pg_roles r
WHERE r.rolname !~ '^pg_'
ORDER BY 1;
角色名称 | 成员 |
---|---|
鲍勃 | {特德} |
postgres | {} |
特德 | {} |
除了忽略您需要滚动到一侧之外,我不明白它如何或为什么不显示该列。您可能想确保您的
psql
与您要连接的数据库版本相同。