我想创建一个只读用户,该用户应该对所有模式中的所有表具有SELECT访问权限。我查看了redshift文档,但看起来我们只能在一条sql语句中授予对特定模式的访问权限。(并非一次所有模式此只读用户应该对将来创建的所有表/模式具有只读访问权限。我不知道该怎么做。
我是否遗漏了什么,或者这是AWS故意做的?如果这是一个限制,那么解决这个问题的可能解决方法是什么?
发布于 2018-09-24 10:26:26
您不能在Redshift中一次授予对多个模式的SELECT (“只读”)权限,因为您已经发现这只能针对每个模式进行。也不可能设置权限,使用户自动获得对新创建的模式的任何类型的权限,除非该用户是“超级用户”。这是大多数数据库平台的典型情况,即必须在创建模式之后创建模式级权限。
我建议您最好的选择是查看创建新模式的过程,看看权限授予是否可以作为该过程的一部分完成。考虑使用用户组而不是用户,这将使您在需要添加或更改具有这些权限的用户时更易于管理。
例如:
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;https://stackoverflow.com/questions/52376623
复制相似问题