sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man får rollens kommentar från PostgreSQL-databasen

Ett bra sätt att hitta hur man hämtar den här typen av information är att kontrollera hjälpen för psql och hitta kommandot som skulle visa denna information.

I det här fallet är det dg+ kommando.

När du väl känner till kommandot kan du aktivera utskrift av de interna SQL-frågorna för psql verktyg för att ta reda på hur den hämtar den informationen. Detta görs genom att starta psql med -E parameter.

Om du gör det ser du:

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

Det framgår inte av din fråga om du bara vill ha några metod för att se kommentaren, sedan dg+ räcker nog. Annars kan du justera SQL-frågan som används av psql till dina behov, t.ex.:

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

Obs:\du och \dg är samma kommando i psql. Båda underhålls av historiska skäl .



  1. Returnera operativsystemversionsinformation i SQL Server med vyn sys.dm_os_host_info Dynamic Management

  2. oracle sql (saknar vänster parentes

  3. Infoga INTO MySQL FRÅN en annan tabell

  4. uppdatera värden från två tabeller med samma pcode och id