如何限制Snowflake角色仅访问Snowflake Marketplace中的指定数据集?
限制Snowflake角色仅访问Marketplace选定数据集的方法
Snowflake可以通过权限配置、会话策略结合标签的方式实现这个需求,具体操作如下:
精准控制共享导入权限
首先收回角色的全局IMPORT SHARE权限(如果之前给过的话),这个权限会让角色能导入Marketplace上的任意共享数据。之后只针对每个获批的数据集,单独给角色授予对应共享的IMPORT SHARE权限:-- 收回全局权限(如果存在) REVOKE IMPORT SHARE ON ACCOUNT FROM ROLE <目标角色名>; -- 给获批数据集的共享单独授权 GRANT IMPORT SHARE ON SHARE <获批数据集的共享名称> TO ROLE <目标角色名>;这样角色只能导入你明确授权的那些数据集。
用会话策略+标签隐藏未授权数据集
要是想让角色在Marketplace界面里根本看不到未获批的数据集,可以配合标签和会话策略:- 给所有获批的数据集共享打上统一标签,比如
APPROVED = 'TRUE' - 创建会话策略,让目标角色只能访问带有该标签的共享:
CREATE OR REPLACE SESSION POLICY approved_dataset_policy WITH TAG_FILTER (APPROVED = 'TRUE') APPLY TO ROLE <目标角色名>;
配置后角色在Marketplace里只会显示已打标签的获批内容,不会看到其他未授权数据集。
- 给所有获批的数据集共享打上统一标签,比如
配套请求审批流程
如果需要走“请求-审批”的流程,让角色先提交访问申请,管理员审批通过后再执行上述的权限授予操作,就能确保只有获批的数据集能被角色获取。
内容的提问来源于stack exchange,提问作者Rajib Deb
相关产品推荐
相关产品推荐

