雪花UDF调用“显示共享”功能

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

是否可以在Snowflake的FUNCTION或PROCEDURE中发出“ Show Shares”函数调用?由于信息模式中没有元数据对象可以查询有关共享的信息,因此我们正在寻找一种创建UDF的方法来获取此元数据并根据结果进行操作。

[尝试执行以下代码时:

CREATE OR REPLACE PROCEDURE get_share_metadata()
RETURNS VARIANT
LANGUAGE javascript
AS
$$
    var x=snowflake.execute( { sqlText: "SHOW SHARES" } );
$$
;
call get_share_metadata();

返回以下错误:存储过程GET_SHARE_METADATA中的执行错误:存储过程执行错误:不支持的语句类型'SHOW SHARE'。在Snowflake.execute,第2行的位置20

share user-defined-functions snowflake-data-warehouse
2个回答
0
投票

我不确定函数与存储过程是否相关,但是根据您要执行的操作,是否仅使用RESULT_SCAN进行了调查?

SHOW SHARES;
SELECT * FROM TABLE(RESULT_SCAN(last_query_id()));

0
投票

如果将存储过程设置为EXECUTE AS CALLER,则可以在存储过程ONLY中执行SHOW ....命令。

作为调用者执行时,执行过程必须]的角色具有执行过程中命令的特权。

示例:

  • [SHOW SHARES仅可用于ACCOUNTADMIN角色(从技术上讲,任何角色都可以成功运行命令,但结果仅限于accountadmin)。
  • [SHOW USERS仅可以使用具有该帐户的MANAGE GRANTS特权的任何角色来成功执行。
  • 文档:

https://docs.snowflake.net/manuals/sql-reference/stored-procedures-usage.html#label-owners-rights-stored-procedures

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