将 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中为所有模式授予用户或组的权限

如何授予 Redshift 中所有模式的使用权限?

ORACLE把一个用户下的所有表权限赋予另一个用户?

尽管没有超级用户,如何在 MYSQL 中向(root)用户授予超级权限?

Amazon Redshift 修改由其他用户创建的视图定义