更改 Redshift 物化视图所有者

问题描述 投票:0回答:2

我有一个物化视图,需要作为我的 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;
sql amazon-redshift
2个回答
2
投票

我在使用 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>;

0
投票

另一种选择是创建存储过程来执行刷新。

  1. 使用材质视图的同一所有者创建存储过程,以便允许刷新
  2. 在存储过程中使用 SECURITY DEFINER 属性。

请参阅:https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-security-and-privileges.html

© www.soinside.com 2019 - 2024. All rights reserved.