Một cách tốt để tìm cách truy xuất loại thông tin này là kiểm tra trợ giúp cho psql
và tìm lệnh sẽ hiển thị thông tin này.
Trong trường hợp này, nó là dg+
yêu cầu.
Khi bạn biết lệnh, bạn có thể cho phép in các truy vấn SQL nội bộ của psql
công cụ để tìm hiểu cách nó truy xuất thông tin đó. Điều này được thực hiện bằng cách khởi động psql
sử dụng -E
tham số.
Nếu bạn làm điều đó, bạn sẽ thấy:
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
Câu hỏi của bạn không rõ ràng nếu bạn chỉ muốn một số để xem nhận xét, sau đó nhấn dg+
có lẽ là đủ. Nếu không, bạn có thể điều chỉnh truy vấn SQL được psql
sử dụng theo nhu cầu của bạn, ví dụ:
SELECT pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
FROM pg_catalog.pg_roles r
where r.rolname = 'someone';
Lưu ý:\ du và \ dg là cùng một lệnh trong psql. Cả hai đều được duy trì vì lý do lịch sử .