Snowflake任务执行权限配置:批量及未来任务权限设置方案
Snowflake批量授权任务OPERATE权限解决方案
针对现有任务批量授权
你可以通过模式/数据库级的批量授权替代逐个任务授权,执行以下SQL(替换占位符为实际值):
-- 单个模式下所有现有任务 GRANT OPERATE ON ALL TASKS IN SCHEMA {db}.{schema} TO ROLE {myrole}; -- 整个数据库下所有现有任务(如需批量覆盖更大范围) GRANT OPERATE ON ALL TASKS IN DATABASE {db} TO ROLE {myrole};
覆盖未来新建任务
为了让后续创建的任务自动获得OPERATE权限,添加未来任务的授权:
-- 单个模式下的未来任务 GRANT OPERATE ON FUTURE TASKS IN SCHEMA {db}.{schema} TO ROLE {myrole}; -- 整个数据库下的未来任务(如需批量覆盖更大范围) GRANT OPERATE ON FUTURE TASKS IN DATABASE {db} TO ROLE {myrole};
跨多数据库/模式批量处理(适用于数百个任务场景)
如果任务分散在多个数据库和模式中,用以下SQL自动生成所有授权语句:
SELECT DISTINCT 'GRANT OPERATE ON ALL TASKS IN SCHEMA ' || TABLE_CATALOG || '.' || TABLE_SCHEMA || ' TO ROLE {myrole};' AS 授权现有任务语句, 'GRANT OPERATE ON FUTURE TASKS IN SCHEMA ' || TABLE_CATALOG || '.' || TABLE_SCHEMA || ' TO ROLE {myrole};' AS 授权未来任务语句 FROM INFORMATION_SCHEMA.TASKS;
执行查询后,将结果中的语句复制出来批量执行,即可一次性处理所有现有任务并覆盖未来任务。
补充说明:账户级EXECUTE TASK权限仅允许角色创建任务,手动执行任务(包括UI操作)需要的是任务的OPERATE权限,二者作用范围不同,因此之前的账户级权限无法满足UI执行需求。
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

