Dobrym sposobem, aby dowiedzieć się, jak uzyskać tego rodzaju informacje, jest sprawdzenie pomocy dla psql
i znajdź polecenie, które wyświetli te informacje.
W tym przypadku jest to dg+
Komenda.
Znając polecenie, możesz włączyć drukowanie wewnętrznych zapytań SQL psql
narzędzie, aby dowiedzieć się, w jaki sposób pobiera te informacje. Odbywa się to poprzez uruchomienie psql
używając -E
parametr.
Jeśli to zrobisz, zobaczysz:
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
Z Twojego pytania nie wynika jasno, czy chcesz tylko trochę metoda, aby zobaczyć komentarz, a następnie dg+
prawdopodobnie wystarczy. W przeciwnym razie możesz dostosować zapytanie SQL używane przez psql
do Twoich potrzeb, np.:
SELECT pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
FROM pg_catalog.pg_roles r
where r.rolname = 'someone';
Uwaga:\du i \dg to to samo polecenie w psql. Oba są utrzymywane ze względów historycznych .