我想在redshift中给予readonly权限。 我用了这个命令
GRANT USAGE ON SCHEMA myschema TO GROUP my_group;
GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO GROUP my_group;
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO GROUP my_group; REVOKE CREATE ON SCHEMA myschema FROM GROUP my_group;"
这样可行但看起来如果创建了新表,那么用户就没有这些表的权限
根据AWS
IN SCHEMA schema_name
可选。如果出现IN SCHEMA子句,则指定 默认权限应用于在中创建的新对象 规定 模式名。在这种情况下,作为目标的用户或用户组 ALTER DEFAULT PRIVILEGES必须具有CREATE权限 指定的架构。特定于模式的默认权限 添加到现有的全局默认权限。默认情况下,默认 权限全局应用于整个数据库。
这是否意味着我必须向该组授予CREATE权限?
答案 0 :(得分:0)
假设您使用 user_x 创建表格,然后您想为组 my_group 授予READ权限,这是我通常用来实现的命令:
ALTER DEFAULT PRIVILEGES FOR USER user_x IN SCHEMA myschema GRANT SELECT ON TABLES TO GROUP my_group;