Snowflake:能否在消费端(Staging环境)直接对共享数据配置掩码策略?
问题解答
可以直接在消费端(Staging环境的Snowflake账户)完成共享数据的掩码处理,无需先在Production环境掩码后再共享。具体说明和操作要点如下:
- 核心可行性:Snowflake的动态数据掩码策略支持在数据共享的消费端创建并应用,只要你拥有共享对象的对应操作权限(比如对共享过来的表具备ALTER权限)。
- 操作步骤:
- 在Staging账户中,针对共享过来的目标表创建掩码策略。示例SQL:
CREATE OR REPLACE MASKING POLICY email_mask AS (val STRING) RETURNS STRING -> CASE WHEN CURRENT_ROLE() IN ('ANALYST_ROLE') THEN val ELSE REGEXP_REPLACE(val, '(.{2}).+@(.+)', '\\1***@\\2') END; - 将掩码策略绑定到共享表的敏感字段上:
ALTER TABLE shared_prod_db.shared_schema.customer_table MODIFY COLUMN email SET MASKING POLICY email_mask;
- 在Staging账户中,针对共享过来的目标表创建掩码策略。示例SQL:
- 注意事项:
- 需确保Staging账户内的角色具备创建掩码策略以及修改共享表的权限,可由共享提供者(Production账户)在共享时授予,或由消费端账户管理员配置。
- 该掩码策略仅对Staging账户内的数据访问生效,不会改动Production账户的原始数据,也不会改变共享的底层数据内容,仅在消费端查询时动态应用掩码规则。
内容的提问来源于stack exchange,提问作者Avenger
相关产品推荐
相关产品推荐

