注释
本页介绍行筛选器和列掩码策略的要求、配额和限制。
此页列出了 Unity 目录中 ABAC 行筛选器和列掩码策略的要求、策略配额和当前限制。
计算要求
若要使用 ABAC 策略,必须使用以下计算配置之一:
有关运行需要较旧运行时的工作负荷的指南,请参阅 来自较旧运行时的访问。
受治理的标记要求
ABAC 策略使用受治理的标记,而不是未治理的标记。 受管理标记在帐户级别定义,其中包含用于确定谁可以创建、分配和管理这些标记的访问控制。 有关完整详细信息,请参阅 受治理的标记。
注释
分配或修改标记后,更改可能需要几分钟才能生效。
策略配额
| Resource | Limit |
|---|---|
| 每个元存储的策略 | 10,000 |
| 按目录或架构划分的策略 | 100 |
| 每个表的策略数 | 50 |
每个策略的主体(适用于这两 TO 个策略和 EXCEPT 子句) |
20 |
每个子句的 MATCH COLUMNS 列条件 |
3 |
有关更多详细信息,包括受治理的标记配额,请参阅 服务限制。
ABAC 限制
从较旧的运行时访问
低于 16.4 的 Databricks Runtime 版本的标准和专用计算无法访问受 ABAC 保护的表。 如果需要某些工作负荷继续在较旧的运行时上运行,请将 ABAC 策略的范围限定为特定组,而不是广泛应用。 仅添加希望策略应用于该组的用户或主体,并使用子句排除运行旧运行时工作负荷 EXCEPT 的主体。 组外部的用户将保留对基础表的完全访问权限。 这样,工作负荷就可以在转换为受支持的运行时时继续访问表。
有关视图的 ABAC 策略
不能将 ABAC 策略直接应用于视图。 但是,当用户查询引用具有 ABAC 策略的表的视图时,通过视图访问数据时会遵循这些策略。
使用 会话用户的标识评估基础表上的 ABAC 行筛选器和列掩码,这意味着运行查询的人员。 用户仅看到他们有权访问的行和列值,这些行和列值由基表上的 ABAC 策略定义。 基表访问检查和对依赖项的访问检查使用视图所有者的标识,以便用户可以查询视图,而无需对基础表具有直接权限。
注释
当通过函数访问具有 ABAC 策略的表时,将应用相同的会话用户标识模型。
会话用户标识模型与 ABAC GA 版本一起引入。 以前,使用视图所有者或函数定义者的标识评估策略。 有关详细信息,请参阅 2026 年 4 月发行说明。
有关具体化视图和流式处理表的 ABAC 策略
当管道刷新实体化视图或流表时,会利用管道所有者或运行身份身份来评估策略。 如果该身份受ABAC政策约束,具体化视图或流表将永久包含掩蔽或过滤数据。 为避免这种情况,可以在ABAC策略的条款中添加流水线所有者或运行身份 EXCEPT ,这些条款与流水线刷新过程中读取的所有表相关联。 使用子 TO 句指定哪些用户和组接收屏蔽或筛选的数据。
使用 ABAC 策略或引用它们的视图打开共享表
如果共享所有者不受策略(子句中列出的 EXCEPT )除外,则只能通过 OpenSharing 共享引用具有 ABAC 策略的表或视图的表共享。 策略不控制收件人的访问权限。 收件人可以将自己的 ABAC 策略应用于共享表,以在其端强制实施访问控制。
- 对于共享提供商,请参阅 向共享添加受 ABAC 策略保护的表和模式。
- 有关共享收件人,请参阅 读取受 ABAC 保护的数据并应用 ABAC 策略。
有关如何将 OpenSharing 与 ABAC 配合使用的详细信息,请参阅 OpenSharing 和 ABAC。
使用 ABAC 策略对表进行时间旅行和克隆
无法根据历史表快照评估 ABAC 策略,因此,具有活动行筛选器或列掩码的表上的时间旅行查询失败。 具有 ABAC 策略的表也不支持深度和浅表克隆。
若要启用这些操作,请创建服务主体或组,并将其添加到策略的 EXCEPT 子句。 不会针对免除主体评估策略,因此这些操作可以运行。
Important
免除主体看到未筛选的未屏蔽数据。 仅免除用于 ETL 或管道工作负荷的服务主体等受信任标识。
例如,以下策略会屏蔽除运行时间旅行查询和克隆操作以外的 etl_service_principal所有用户的 PII 列:
CREATE POLICY mask_pii
ON CATALOG prod
COLUMN MASK prod.governance.mask_value
TO `account users`
EXCEPT `etl_service_principal`
FOR TABLES
MATCH COLUMNS
has_tag_value('pii', 'ssn') AS ssn
ON COLUMN ssn;
同一用户的同一个表或列上的多个策略
只有一个不同的行筛选器可以在运行时解析给定表和给定用户,并且只有一个不同的列掩码可以解析给定列和给定用户。 可以定义多个策略,但当用户查询表时,只有一个策略的条件必须匹配。 如果多个不同的行筛选器或列掩码应用于同一用户和表或列,Azure Databricks会阻止访问并返回错误。 如果多个策略解析为具有相同参数的同一行筛选器或列掩码 UDF,则允许多个策略。
有关详细信息,请参阅 多个筛选器和掩码的规则。
ABAC 和表级行筛选器和列掩码常见的限制
有关适用于 ABAC 和表级行筛选器和列掩码的行筛选器和列掩码的常规限制,请参阅“限制”。