psql (9.4.5)
Type "help" for help.
postgres=# \dg+
********* 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
, pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
, r.rolreplication
FROM pg_catalog.pg_roles r
ORDER BY 1;
**************************
List of roles
Role name | Attributes | Member of | Description
---------------+-----------------------------------+-----------+-----------------------
someone | | {} | THIS IS A ROLE COMMENT
select r.rolname, psd.description
from pg_catalog.pg_shdescription psd
inner join pg_roles r ON r.oid = psd.objoid
inner join pg_class c ON c.relname = 'pg_authid'
inner join pg_namespace n ON n.oid = c.relnamespace AND n.nspname = 'pg_catalog';
\du+ someone
Role name | Attributes | Member of | Description
-----------+-------------------------------+-----------+------------------------
someone | Password valid until infinity | {} | THIS IS A ROLE COMMENT
5条答案
按热度按时间roqulrg31#
查找如何检索这类信息的一个好方法是查看
psql
的帮助并找到显示此信息的命令。在本例中,它是
dg+
命令。一旦知道了该命令,就可以打印
psql
工具的内部SQL查询,以了解它是如何检索这些信息的。这是通过使用-E
参数启动psql
来完成的。如果你这样做,你会看到:
字符串
从你的问题中还不清楚你是否只是想让某个方法看到注解,那么
dg+
可能就足够了。否则,您可以根据需要调整psql
使用的SQL查询,例如:型
注意:\du和\dg在psql中是相同的命令。两者都被维护为for historic reasons。
plupiseo2#
角色在群集中的所有数据库上共享。这些共享对象的注解包含在
pg_shdescription
系统目录中。你可以得到这样一个角色的注解:字符串
yqlxgs2m3#
要简化已接受答案的查询,请执行以下操作:
字符串
rxztt3cl4#
使用
psql
的\du+
输出大致如下:字符串
您可以在其中阅读
Description
列中的注解。zour9fqk5#
另一个简单的查询是:
第一个月