首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PSQL \z和information_schema.table_privileges显示不同的详细信息?

为什么PSQL \z和information_schema.table_privileges显示不同的详细信息?
EN

Stack Overflow用户
提问于 2021-07-19 06:58:03
回答 1查看 49关注 0票数 0

我在目前的公司偶然遇到了一个DBA的角色,这对我设置有用的查询有很大帮助。

我目前正在尝试创建一些视图来帮助UAR (用户访问审查),以满足合规性要求,并帮助用户排除访问故障。为此,我尝试创建一个视图,该视图列出用户名及其对数据库中所有模式中的所有表的权限。我从一个针对information_schema.table_privileges的视图开始,但注意到它是不完整的。如果相关,这是在AWS RDS Postgres实现中。

为了深入研究,我执行了\z schema_name.table_name,并得到了以下输出。一切看起来都很好:我看到拥有角色analytics_owner具有所有权限,六个组角色具有不同级别的权限。(访问数据库的所有员工和应用程序都被授予这六个角色之一的成员资格。)

pg_class的查询也显示了这一点

但是如果我对information_schema.table_privileges进行查询,则没有结果。(实际上,如果删除where relname = '[table]'子句,在table_privileges输出中的相关模式中只有两个表有详细信息-但实际的模式中大约有一百个表。)

information_schema.table_privileges中没有显示\z命令的权限详细信息。我更喜欢在table_privileges上写一个视图,而不是pg_class,因为我不需要解码和分离聚合的ACL细节。但是,由于只有很小一部分实际的表在其中,所以看起来table_privileges视图有一些非常特殊的东西。

有没有一个查询会以与information_schema.table_privileges中包含的相同格式生成相同的详细信息,但从pg_class中获取数据?或者,table_privileges有什么不同,使它不能显示完整的细节,我是否可以对授予的权限做些什么,使它们在那里可见,以便于审查?

EN

回答 1

Stack Overflow用户

发布于 2021-07-19 07:50:37

根据Adrian Klaver的评论,information_schema取决于运行查询时您登录的角色。

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

https://stackoverflow.com/questions/68433659

复制
相关文章

相似问题

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