如何授予 Amazon Redshift 用户读取系统表、视图、日志等的访问权限?

Posted

技术标签:

【中文标题】如何授予 Amazon Redshift 用户读取系统表、视图、日志等的访问权限?【英文标题】:How do I grant access to an Amazon Redshift user to read the system tables, views, logs, etc? 【发布时间】:2016-09-19 21:11:58 【问题描述】:

我在 Amazon Redshift 中有一个用户。我希望该用户能够对系统表进行只读查询:

http://docs.aws.amazon.com/redshift/latest/dg/cm_chap_system-tables.html

但我不知道如何授予非超级用户访问这些表的权限,因为亚马逊上的任何地方似乎都没有记录。

【问题讨论】:

是否可以选择让用户成为超级用户? 不,很遗憾没有。 【参考方案1】:

显然,您不想将超级用户授予其他用户,以便他们可以查看系统日志。能够监控是一个非常常见的用例,不需要授予某人全权委托访问权限。

谢天谢地,您可以使用 syslog access 选项授予对系统表的访问权限。

alter user user123 syslog access unrestricted

见Redshift documentation on visibility

【讨论】:

【参考方案2】:

如果你是超级用户,你可以让其他用户成为超级用户或创建一个新的超级用户,然后其他用户可以查询系统表和视图。使用 createuser 权限。 以下是示例查询

create user user_super createuser password '1234';
alter user user_super createuser;

在创建任何超级用户时要小心,超级用户会获得所有访问权限,包括授予和撤销以及超级用户运行的查询始终会转到 query-1,并使其他查询等到完成。

【讨论】:

以上是关于如何授予 Amazon Redshift 用户读取系统表、视图、日志等的访问权限?的主要内容,如果未能解决你的问题,请参考以下文章

将 Redshift 系统表的权限授予非超级用户

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

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

有用的 Amazon Redshift SQL 用户定义函数的任何示例?

如何使用 Pentaho 处理 Amazon Redshift 中缓慢变化的维度?

无法使用 psycopg2 从 Amazon Redshift 读取数据