适用于:
Databricks SQL
Databricks Runtime
仅 Unity Catalog
Important
此功能目前以公共预览版提供。
INFORMATION_SCHEMA.ABAC_POLICY_DEFINITIONS 返回附加到本地目录中安全对象的每个 ABAC 策略的一行。 每行描述策略定义,包括其附件范围、策略类型、包括和免除主体,以及用于强制实施策略的条件。
只有当你拥有 READ METADATA 或 MANAGE 在附带保单的担保上,或者拥有它时,你才会看到保单被退回。 这与 DESCRIBE POLICY 的访问模式匹配。
此关系是 SQL 标准信息架构的扩展。
定义
ABAC_POLICY_DEFINITIONS 关系包含以下字段:
| 名称 | 数据类型 | 可为 Null | Description |
|---|---|---|---|
POLICY_ID |
STRING |
No | 策略的唯一标识符。 |
POLICY_NAME |
STRING |
No | 策略的名称。 |
POLICY_TYPE |
STRING |
No | 策略类型。 例如,ROW_FILTER或 COLUMN_MASKGRANT (Beta)。 |
CATALOG_NAME |
STRING |
Yes | 策略附加到的目录的名称,或包含策略所附加到的架构或表。 |
SCHEMA_NAME |
STRING |
Yes | 策略附加到的架构的名称,或包含该策略所附加到的表。
NULL 用于目录附加策略。 |
SECURABLE_NAME |
STRING |
Yes | 策略附加到的安全对象的名称。
NULL 用于目录附加策略和架构附加策略。 |
ON_SECURABLE_TYPE |
STRING |
No | 策略附加到的安全对象的类型。 例如,CATALOG、SCHEMA、TABLE 或 MODEL。 |
TO_PRINCIPALS |
ARRAY<STRING> |
No |
策略适用的主体 (用户、组或服务主体)。 如果未设置空数组,则为空数组 [] 。 |
EXCEPT_PRINCIPALS |
ARRAY<STRING> |
No | 从策略应用程序中排除的主体。 排除无值时为空数组 [] 。 |
FOR_SECURABLE_TYPE |
STRING |
No | 评估策略所面向的安全对象的类型。 例如,TABLE。 |
PRIVILEGES |
ARRAY<STRING> |
Yes | 策略授予的权限。
NULL for ROW_FILTER 和 COLUMN_MASK policies。 |
WHEN_CONDITION |
STRING |
Yes | 应用策略的条件表达式。 例如,一个布尔表达式,该表达式根据表的受治理标记匹配。 |
MATCH_COLUMNS |
ARRAY<STRING> |
Yes | 策略引用的列。
NULL 用于 GRANT 策略。 |
CREATED_BY |
STRING |
No | 创建策略的主体。 |
示例
-- List every GRANT policy in the current catalog.
> SELECT *
FROM information_schema.abac_policy_definitions
WHERE policy_type = 'GRANT';
-- Find all row filters and column masks attached to securable objects in a schema.
> SELECT policy_name, policy_type, on_securable_type, securable_name, when_condition, match_columns
FROM information_schema.abac_policy_definitions
WHERE policy_type IN ('ROW_FILTER', 'COLUMN_MASK')
AND catalog_name = 'my_catalog'
AND schema_name = 'my_schema';