Un bon moyen de savoir comment récupérer ce type d'informations est de consulter l'aide de psql
et trouvez la commande qui afficherait ces informations.
Dans ce cas, c'est le dg+
commande.
Une fois que vous connaissez la commande, vous pouvez activer l'impression des requêtes SQL internes du psql
outil pour savoir comment il récupère ces informations. Cela se fait en démarrant psql
en utilisant le -E
paramètre.
Si vous faites cela, vous verrez :
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
Il n'est pas clair d'après votre question si vous voulez juste certains méthode pour voir le commentaire, puis dg+
est probablement suffisant. Sinon, vous pouvez ajuster la requête SQL utilisée par psql
à vos besoins, par exemple :
SELECT pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
FROM pg_catalog.pg_roles r
where r.rolname = 'someone';
Remarque :\du et \dg sont la même commande dans psql. Les deux sont maintenus pour des raisons historiques .