我有一个物化视图,需要作为我的 ETL 管道的一部分进行刷新。 ETL 管道由 ETL 用户运行。
尝试刷新时出现以下错误:
错误:只有 MV dbo.mat_view 的所有者才能调用 REFRESH。
我搜索了文档,但找不到任何有关更改物化视图所有者的内容。我也尝试过以下方法:
GRANT ALL
ON dbo.mat_view
TO dev_etl_user;
还有这个(我在桌子上使用)
ALTER MATERIALIZED VIEW dbo.mat_view
OWNER TO dev_etl_user;
但是运行时都不起作用
SET SESSION AUTHORIZATION dev_etl_user;
REFRESH MATERIALIZED VIEW dbo.mat_view;
我在使用 Redshift 时也遇到了同样的问题。
对我有用的 sql 查询是这样的:
ALTER table <your_schema>.<your_mv> OWNER TO <new_owner>;
您可以使用以下查询检查更改:
select name, owner_user_name from STV_MV_INFO where schema = <your_schema>;
另一种选择是创建存储过程来执行刷新。
请参阅:https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-security-and-privileges.html