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

能否在Unity Catalog中实现基于标签的访问控制?附示例代码

Unity Catalog 基于标签的访问控制问题解答

1. 是否可以使用Unity Catalog实现基于标签的访问控制?

可以。Unity Catalog支持基于**数据分类标签(Data Classification Tags)**的访问控制,你可以给数据对象(表、列等)打上敏感度标签(比如PII),再基于这些标签配置权限规则,实现精细化的访问管控。

2. 能否按照示例代码在Unity Catalog中实现该功能?

你提供的示例代码语法和Unity Catalog的实际语法不匹配,Unity Catalog使用TAG关键字而非ATTRIBUTE,正确的实现步骤如下:

步骤1:创建PII标签

CREATE TAG pii;

步骤2:为目标列添加标签

ALTER TABLE CUSTOMER ALTER COLUMN CUSTOMER_CREDIT_CARD SET TAG pii = 'true';

步骤3:基于标签配置权限

Unity Catalog实现这类需求通常有两种方式:

方式一:使用列屏蔽规则隐藏PII列

先授予基础SELECT权限,再通过屏蔽规则限制敏感列的访问:

-- 授予对数据库的基础SELECT权限
GRANT SELECT ON DATABASE CUSTOMER TO NON_PII_ROLE;

-- 创建屏蔽规则:当访问角色为NON_PII_ROLE时,返回NULL隐藏PII列
CREATE MASKING POLICY pii_masking
WITH (col_name STRING)
USING (CASE WHEN CURRENT_ROLE() = 'NON_PII_ROLE' THEN NULL ELSE col_name END);

-- 将规则应用到所有带pii标签的列
APPLY MASKING POLICY pii_masking ON ALL COLUMNS IN DATABASE CUSTOMER WHERE TAG(pii) = 'true';

方式二:直接基于标签条件授予权限

如果需要仅允许访问不含PII标签的对象,可以用标签过滤条件:

GRANT SELECT ON DATABASE CUSTOMER TO NON_PII_ROLE
WHERE NOT TAG(pii) = 'true';

注意:不同版本的Unity Catalog在标签权限语法上可能存在细微差异,需结合你使用的Databricks版本调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:50:28