将 Redshift 系统表的权限授予非超级用户
Posted
技术标签:
【中文标题】将 Redshift 系统表的权限授予非超级用户【英文标题】:Granting permissions on Redshift system tables to non-superusers 【发布时间】:2018-02-01 16:28:03 【问题描述】:根据https://docs.aws.amazon.com/redshift/latest/dg/c_join_PG_examples.html,非超级用户需要获得权限才能对 Redshift DB(多个模式)中的某些系统表执行目录查询。
用户应该能够查看数据库中的所有模式、表和列,以便从本质上判断每个表的 modified_date
列是否已在每日 ETL 中更新。
查看文档,似乎按照https://docs.aws.amazon.com/redshift/latest/dg/c_visibility-of-data.html 设置alter user SYSLOG ACCESS UNRESTRICTED
看起来像是一个选项,是否足够?
或者我可以为上面提到的所有必要的系统表做grant all on pg_catalog.pg_class to user
等等?
非常感谢任何帮助!
【问题讨论】:
【参考方案1】:SYSLOG ACCESS UNRESTRICTED 将允许您的用户查询所有系统目录表,但对于像PG_TABLE_DEF 这样的一些系统表,他们可能还需要确保他们的search_path 包含他们感兴趣的架构。
【讨论】:
看起来用户也需要访问架构。以上是关于将 Redshift 系统表的权限授予非超级用户的主要内容,如果未能解决你的问题,请参考以下文章
如何授予 Amazon Redshift 用户读取系统表、视图、日志等的访问权限?
在Amazon Redshift中为所有模式授予用户或组的权限