如何查询postgres中授予对象的所有授权?
例如,我有一个表"mytable":
GRANT SELECT, INSERT ON mytable TO user1
GRANT UPDATE ON mytable TO user2
我需要一些能给我的东西
user1: SELECT, INSERT
user2: UPDATE
发布于 2011-09-07 23:40:42
我已经找到了:
SELECT grantee, privilege_type
FROM information_schema.role_table_grants
WHERE table_name='mytable'
发布于 2011-09-07 23:32:26
来自psql的\z mytable
为您提供了一个表中的所有授权,但是您必须按单个用户对其进行拆分。
发布于 2017-02-08 17:13:01
下面的查询将为您提供模式中所有用户及其对表的权限的列表。
select a.schemaname, a.tablename, b.usename,
HAS_TABLE_PRIVILEGE(usename, quote_ident(schemaname) || '.' || quote_ident(tablename), 'select') as has_select,
HAS_TABLE_PRIVILEGE(usename, quote_ident(schemaname) || '.' || quote_ident(tablename), 'insert') as has_insert,
HAS_TABLE_PRIVILEGE(usename, quote_ident(schemaname) || '.' || quote_ident(tablename), 'update') as has_update,
HAS_TABLE_PRIVILEGE(usename, quote_ident(schemaname) || '.' || quote_ident(tablename), 'delete') as has_delete,
HAS_TABLE_PRIVILEGE(usename, quote_ident(schemaname) || '.' || quote_ident(tablename), 'references') as has_references
from pg_tables a, pg_user b
where a.schemaname = 'your_schema_name' and a.tablename='your_table_name';
有关has_table_privilages
的更多详细信息,请访问here。
https://stackoverflow.com/questions/7336413
复制相似问题