Eine gute Möglichkeit, herauszufinden, wie Sie diese Art von Informationen abrufen können, besteht darin, die Hilfe für psql
zu lesen und finden Sie den Befehl, der diese Informationen anzeigen würde.
In diesem Fall ist es dg+
Befehl.
Sobald Sie den Befehl kennen, können Sie das Drucken der internen SQL-Abfragen von psql
aktivieren Tool, um herauszufinden, wie es diese Informationen abruft. Dies geschieht durch Starten von psql
mit dem -E
Parameter.
Wenn Sie das tun, sehen Sie:
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
Aus Ihrer Frage geht nicht hervor, ob Sie nur etwas möchten -Methode, um den Kommentar anzuzeigen, dann dg+
reicht wohl. Andernfalls können Sie die SQL-Abfrage anpassen, die von psql
verwendet wird an Ihre Bedürfnisse anpassen, z. B.:
SELECT pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
FROM pg_catalog.pg_roles r
where r.rolname = 'someone';
Hinweis:\du und \dg sind derselbe Befehl in psql. Beide werden aus historischen Gründen beibehalten .