如何授予 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 用户读取系统表、视图、日志等的访问权限?的主要内容,如果未能解决你的问题,请参考以下文章
Amazon Redshift 修改由其他用户创建的视图定义
有用的 Amazon Redshift SQL 用户定义函数的任何示例?