Truy vấn này sẽ liệt kê tất cả các bảng trong tất cả các cơ sở dữ liệu và lược đồ (bỏ ghi chú dòng (s) trong mệnh đề WHERE
để lọc cho cụ cơ sở dữ liệu, lược đồ, hoặc bảng), với những đặc quyền thể hiện trong trật tự để nó dễ dàng để xem nếu một đặc ân cụ thể được cấp hay không: sản lượng
SELECT grantee
,table_catalog
,table_schema
,table_name
,string_agg(privilege_type, ', ' ORDER BY privilege_type) AS privileges
FROM information_schema.role_table_grants
WHERE grantee != 'postgres'
-- and table_catalog = 'somedatabase' /* uncomment line to filter database */
-- and table_schema = 'someschema' /* uncomment line to filter schema */
-- and table_name = 'sometable' /* uncomment line to filter table */
GROUP BY 1, 2, 3, 4;
mẫu:
grantee |table_catalog |table_schema |table_name |privileges |
--------|----------------|--------------|---------------|---------------|
PUBLIC |adventure_works |pg_catalog |pg_sequence |SELECT |
PUBLIC |adventure_works |pg_catalog |pg_sequences |SELECT |
PUBLIC |adventure_works |pg_catalog |pg_settings |SELECT, UPDATE |
...
bạn sẽ chạy này trực tiếp từ cửa sổ sql hoặc dòng lệnh pg? –
@ DanielL.VanDenBosch: tất cả các lệnh meta, như '\ z', là dành cho psql. Và psql là giao diện dòng lệnh cho PostgreSQL. –