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

时间:2018-09-17 22:47:06

标签: database amazon-web-services amazon-redshift devops

我想创建一个只读用户,该用户应具有对所有模式中所有表的SELECT访问权限。我检查了redshift文档,但看来我们只能在单个sql语句中授予对特定模式的访问权限。 (不是一次所有的模式。此只读用户应该对将来将要创建的所有表/方案具有只读访问权限。我不确定该怎么做。

我是否缺少某些东西,或者这是AWS故意做的?如果这是一个限制,那么解决此问题的可能解决方法是什么?

1 个答案:

答案 0 :(得分:1)

您无法在Redshift中一次授予多个模式的SELECT(“只读”)权限,因为您已经发现只能按方案进行此操作。除非用户是“超级用户”,否则也无法设置权限以使用户可以自动获得对新创建的架构的任何类型的权限。这是大多数数据库平台的典型情况,即,必须在创建架构后创建架构级别权限。

我建议您最好的选择是查看正在创建新架构的过程,并查看是否可以在该过程中完成权限GRANT。考虑使用用户组而不是用户,如果您需要添加或更改具有这些权限的用户,这将使管理变得更容易。

例如

CREATE GROUP readonlyusers;
CREATE USER my_readonly_user WITH PASSWORD 'abc' IN GROUP readonlyusers;

-- when creating a new schema
CREATE SCHEMA IF NOT EXISTS myschema;
GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO GROUP readonlyusers;