首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >postgres中表的查询授权

postgres中表的查询授权
EN

Stack Overflow用户
提问于 2011-09-07 23:26:10
回答 7查看 124.1K关注 0票数 107

如何查询postgres中授予对象的所有授权?

例如,我有一个表"mytable":

代码语言:javascript
复制
GRANT SELECT, INSERT ON mytable TO user1
GRANT UPDATE ON mytable TO user2 

我需要一些能给我的东西

代码语言:javascript
复制
user1: SELECT, INSERT
user2: UPDATE
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-09-07 23:40:42

我已经找到了:

代码语言:javascript
复制
SELECT grantee, privilege_type 
FROM information_schema.role_table_grants 
WHERE table_name='mytable'
票数 124
EN

Stack Overflow用户

发布于 2011-09-07 23:32:26

来自psql的\z mytable为您提供了一个表中的所有授权,但是您必须按单个用户对其进行拆分。

票数 105
EN

Stack Overflow用户

发布于 2017-02-08 17:13:01

下面的查询将为您提供模式中所有用户及其对表的权限的列表。

代码语言:javascript
复制
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

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7336413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档