sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo obtener el comentario del rol de la base de datos PostgreSQL

Una buena manera de saber cómo recuperar este tipo de información es consultar la ayuda de psql y encuentre el comando que mostraría esta información.

En este caso, es el dg+ dominio.

Una vez que conozca el comando, puede habilitar la impresión de las consultas SQL internas del psql herramienta para averiguar cómo recupera esa información. Esto se hace iniciando psql usando el -E parámetro.

Si haces eso, verás:

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

No queda claro en tu pregunta si solo quieres un poco método para ver el comentario, luego dg+ probablemente sea suficiente. De lo contrario, puede ajustar la consulta SQL que utiliza psql a sus necesidades, por ejemplo:

SELECT pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
FROM pg_catalog.pg_roles r
where r.rolname = 'someone';

Nota:\du y \dg son el mismo comando en psql. Ambos se mantienen por razones históricas .