Snowflake SQL Error [3056] [0A000]: SQL编译错误:共享的视图或函数不能引用其他数据



我正在尝试创建一个安全视图,添加到我的共享,以便读者帐户可以访问它。

示例代码如下:

USE ROLE accountadmin;
create share DEV_SHARE1;
grant usage on database dev_infomart_db to share DEV_SHARE1;
grant usage on schema dev_infomart_db.sch to share DEV_SHARE1;
ALTER SHARE DEV_SHARE1 ADD ACCOUNTS = XXXXXX;
grant reference_usage on database DEV_EDW_DB to share DEV_SHARE1;
GRANT SELECT ON VIEW dev_infomart_db.sch.view1 TO SHARE DEV_SHARE1;

这个视图dev_infomart_db.sch。

数据库DEV_EDW_DB中的表/视图我引用了snowflake的这个文档来共享来自多个db的数据。https://docs.snowflake.com/en/user-guide/data-sharing-mutiple-db.html

我遵循了上面链接中提供的步骤。我仍然得到以下错误,而分享我的观点:

SQL Error [3056] [0000]: SQL编译错误:被共享的视图或函数不能引用其他数据库中的对象。

任何帮助都将非常感激。

这通常发生在一个视图包含其他视图时,其中一些视图引用了来自另一个数据库的对象。

可以使用GET_OBJECT_REFERENCES函数列出视图使用的对象:

https://docs.snowflake.com/en/sql-reference/functions/get_object_references.html

确保它们不引用其他数据库上的对象。

最新更新