You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowflake中合并多个SHOW GRANTS OF ROLE语句的结果

在Snowflake中合并多个角色的权限查询结果

要批量获取10个角色的权限详情并合并到同一结果表中,你可以利用Snowflake的RESULT_SCAN函数捕获SHOW GRANTS命令的输出,再通过临时表或直接UNION ALL合并结果,具体有两种常用方法:

方法一:使用临时表逐步合并

这种方式步骤清晰,适合需要对结果进行后续过滤、排序等操作的场景:

-- 初始化临时表,存储第一个角色的权限结果
SHOW GRANTS OF ROLE ROLENAME_1;
CREATE OR REPLACE TEMPORARY TABLE ALL_ROLE_GRANTS AS 
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));

-- 依次查询剩余角色并将结果插入临时表
SHOW GRANTS OF ROLE ROLENAME_2;
INSERT INTO ALL_ROLE_GRANTS SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));

SHOW GRANTS OF ROLE ROLENAME_3;
INSERT INTO ALL_ROLE_GRANTS SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));

-- 重复上述INSERT步骤,直到处理完ROLENAME_10

-- 查询合并后的所有权限数据
SELECT * FROM ALL_ROLE_GRANTS;

方法二:直接用UNION ALL合并结果

如果不需要临时存储,可直接串联多个RESULT_SCAN的查询结果:

SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_1)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_2)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_3)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_4)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_5)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_6)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_7)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_8)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_9)))))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN((SELECT LAST_QUERY_ID() FROM (SHOW GRANTS OF ROLE ROLENAME_10)))))

关键说明

  • RESULT_SCAN(LAST_QUERY_ID())用于获取上一条SHOW GRANTS命令的输出,因为SHOW类命令属于Snowflake扩展命令,无法直接用UNION ALL串联。
  • 临时表ALL_ROLE_GRANTS会在会话结束后自动销毁,无需手动清理。

内容的提问来源于stack exchange,提问作者Santhosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 06:05:21