Postgresql 在 CMD 中不显示“成员”列

问题描述 投票:0回答:1

我创建了一些简单的用户作为组的成员,并使用“postgres”用户执行此操作。我面临的问题是,当我使用“\du”或“\dg”等命令或任何类似命令时,不会在 CMD 中显示“成员”列,并且最多只有 3 列:“角色”名称”、“属性”和“描述”。我的 Postgresql 版本是 16.1。我该如何解决这个问题?

sql database postgresql cmd
1个回答
0
投票

如果您使用

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
与您要连接的数据库版本相同。

© www.soinside.com 2019 - 2024. All rights reserved.