PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir le commentaire du rôle à partir de la base de données PostgreSQL

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 .