Cara yang baik untuk menemukan cara mengambil informasi semacam ini adalah dengan memeriksa bantuan untuk psql
dan temukan perintah yang akan menampilkan informasi ini.
Dalam hal ini, ini adalah dg+
memerintah.
Setelah mengetahui perintahnya, Anda dapat mengaktifkan pencetakan kueri SQL internal psql
alat untuk mengetahui bagaimana ia mengambil informasi itu. Ini dilakukan dengan memulai psql
menggunakan -E
parameter.
Jika Anda melakukannya, Anda akan melihat:
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
Tidak jelas dari pertanyaan Anda jika Anda hanya ingin beberapa metode untuk melihat komentar, lalu dg+
mungkin cukup. Jika tidak, Anda dapat menyesuaikan kueri SQL yang digunakan oleh psql
dengan kebutuhan Anda, misalnya:
SELECT pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
FROM pg_catalog.pg_roles r
where r.rolname = 'someone';
Catatan:\du dan \dg adalah perintah yang sama di psql. Keduanya dipertahankan untuk alasan historis .