con*_*fun 1 database amazon-web-services amazon-redshift devops
我想创建一个只读用户,该用户应该对所有模式中的所有表具有 SELECT 访问权限。我检查了 redshift 文档,但看起来我们只能在单个 sql 语句中授予对特定模式的访问权限。(不是所有的模式一次这个只读用户应该对将来创建的所有表/模式具有只读访问权限。我不知道如何做到这一点。
我是不是遗漏了什么,还是 AWS 故意这样做的?如果这是一个限制,那么解决此问题的可能解决方法是什么?
您不能在 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;
Run Code Online (Sandbox Code Playgroud)