如何获得角色';来自PostgreSQL数据库的注释
给定角色名如何获得角色';来自PostgreSQL数据库的注释,postgresql,Postgresql,给定角色名someone,如何获取用子句定义的注释: 对角色的评论某人是“这是一个角色评论” ?找到如何检索此类信息的一个好方法是查看psql的帮助并找到显示此信息的命令 在这种情况下,它是dg+命令 了解该命令后,可以启用打印psql工具的内部SQL查询,以了解它是如何检索该信息的。这是通过使用-E参数启动psql来完成的 如果您这样做,您将看到: psql (9.4.5) Type "help" for help. postgres=# \dg+ ********* QUERY *****
someone
,如何获取用子句定义的注释:
对角色的评论某人是“这是一个角色评论”代码>
?找到如何检索此类信息的一个好方法是查看psql
的帮助并找到显示此信息的命令
在这种情况下,它是dg+
命令
了解该命令后,可以启用打印psql
工具的内部SQL查询,以了解它是如何检索该信息的。这是通过使用-E
参数启动psql
来完成的
如果您这样做,您将看到:
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
您的问题不清楚您是否只想通过某种方法查看注释,那么dg+
可能就足够了。否则,您可以根据需要调整psql
使用的SQL查询,例如:
SELECT pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
FROM pg_catalog.pg_roles r
where r.rolname = 'someone';
注意:\du和\dg是psql中的同一命令。两者都得到维持 角色在群集中的所有数据库上共享。这些共享对象的注释包含在pg\u shdescription
系统目录中。您可以获得以下角色的评论:
SELECT rolname, description AS comment
FROM pg_roles r
JOIN pg_shdescription c ON c.objoid = r.oid;
要简化接受答案的查询,请执行以下操作:
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';
使用psql
的\du+
大致输出:
\du+ someone
Role name | Attributes | Member of | Description
-----------+-------------------------------+-----------+------------------------
someone | Password valid until infinity | {} | THIS IS A ROLE COMMENT
您可以在此处阅读说明
列中的注释。谢谢。现在一切都清楚了。是的,我一直在寻找要执行的SQL查询。哈哈,我一直在寻找解决方案,并找到了我自己的答案太遗憾了,我不能投票表决。