【发布时间】:2020-10-29 10:40:34
【问题描述】:
我遇到了一些简单的 Redshift 命令的问题。
我面临的问题是更改表的所有权,这里有更多详细信息。
在我们的 Redshift 集群中,在我们拥有的一个数据库中,作为管理员用户,我创建了一个架构和组,向其中添加了 2 个用户:
create schema materialized_views_staging;
create group mv_owners with user paul, ana;
paul 和 ana 是我们的数据分析师用来访问 Redshift 集群的 2 个用户。
然后我将架构的权限更新为:
grant usage on schema materialized_views_staging TO etl;
grant all on schema materialized_views_staging to group mv_owners;
grant usage on schema materialized_views_staging to group mv_owners;
alter default privileges in schema materialized_views_staging grant all on tables to group mv_owners;
etl 是我们用来运行日常 ETL 作业的用户。
运行以上所有paul后创建了一个表:
create table materialized_views_staging.hj_insights (idd varchar, amount int);
现在,我们需要更改表的所有权,以便每日 ETL 可以在表运行时将数据插入到表中。
此时paul 是hj_insights 表的所有者。根据AWS documentation,对象的所有者(或超级用户)可以查询、修改或授予对象权限。但是,当paul 运行以下内容时:
ALTER TABLE materialized_views_staging.hj_insights OWNER TO etl;
他得到了错误:
[2020-10-29 10:19:57] [42501][500310] [Amazon](500310) Invalid operation: must be superuser to change owner;
这与文档中的说明相反。
您能在我的流程中发现任何不正确的地方吗?我很确定我已经设置了所有必要的权限。
谢谢!
【问题讨论】:
标签: amazon-web-services amazon-redshift privileges