Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к:
Databricks SQL
Databricks Runtime 16.4 и выше
.
Создает именованную политику для защищаемого объекта. Политики могут быть фильтрами строк или масками столбцов, применяемыми к каталогам, схемам или таблицам. Имя политики распространяется на защищаемую политику.
Для выполнения этой инструкции необходимо иметь MANAGE привилегии для защищаемого целевого объекта или быть его владельцем.
Синтаксис
CREATE [ OR REPLACE ] POLICY policy_name
ON { CATALOG catalog_name | SCHEMA schema_name | TABLE table_name }
[ COMMENT description ]
{ row_filter_body | column_mask_body }
row_filter_body
ROW FILTER function_name
TO principal [, ...]
[ EXCEPT principal [, ...] ]
FOR TABLES
[ WHEN condition ]
[ MATCH COLUMNS condition [ [ AS ] alias ] [, ...] ]
[ USING COLUMNS ( function_arg [, ...] ) ]
column_mask_body
COLUMN MASK function_name
TO principal [, ...]
[ EXCEPT principal [, ...] ]
FOR TABLES
[ WHEN condition ]
[ MATCH COLUMNS condition [ [ AS ] alias ] [, ...] ]
ON COLUMN alias
[ USING COLUMNS ( function_arg [, ...] ) ]
Параметры
-
Имя политики. Имя определяется защищаемой политикой. Если политика с тем же именем уже существует и
OR REPLACEне указана, Azure Databricks вызывает POLICY_ALREADY_EXISTS. -
Имя каталога, в котором определена политика. Если защищаемый тип не поддерживается для политик, Azure Databricks вызывает POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
Имя схемы, в которой определена политика.
-
Имя таблицы, в которой определена политика.
описание
Необязательный строковый комментарий для политики.
-
Имя UDF, используемого для фильтра строк или маски столбцов.
principal
Имя пользователя, группы или субъекта-службы. После этого можно указать
TOнесколько субъектов. Субъекты, перечисленные послеEXCEPTисключения из политики.-
Для
WHEN: логическое выражение, соответствующее защищаемым компонентам (например, условиям тега уровня таблицы). ДляMATCH COLUMNS: логическое выражение, которое соответствует столбцам (например,has_tag('tag_name')). Условия оцениваются уровнем управления на защищаемых метаданных. Единственными пользовательскими функциями, поддерживаемыми в условиях, являютсяhas_tag(),has_tag_value()has_column_tag()иhas_column_tag_value(). Старые формы верблюжьего регистра (hasTag,hasTagValue,hasColumnTag, )hasColumnTagValueпродолжают работать для обратной совместимости. Если условие недопустимо, Azure Databricks вызывает UC_INVALID_POLICY_CONDITION. alias
В
MATCH COLUMNS, необязательный идентификатор для соответствующего столбца. Псевдоним можно ссылаться наUSING COLUMNS(фильтр строк) или вON COLUMNиUSING COLUMNS(маску столбца).function_arg
В
USING COLUMNSкаждом аргументе является либо константное выражение , либо псевдоним изMATCH COLUMNS. Аргументы передаются в функцию политики в порядке. Если параметры не соответствуют типу политики, Azure Databricks вызывает UC_POLICY_TYPE_OPTIONS_MISMATCH.
Примеры
В следующем примере создается политика маски столбцов:
> CREATE FUNCTION ssn_to_last_nr (ssn STRING, nr INT) RETURNS STRING
RETURN right(ssn, nr);
> CREATE POLICY ssn_mask
ON CATALOG employees
COLUMN MASK ssn_to_last_nr
TO 'All Users' EXCEPT 'HR admins'
FOR TABLES
MATCH COLUMNS has_tag('ssn') AS ssn
ON COLUMN ssn
USING COLUMNS (4);
В следующем примере создается политика фильтрации строк:
> CREATE FUNCTION non_eu_region (geo_region STRING) RETURNS BOOLEAN
RETURN geo_region <> 'eu';
> CREATE POLICY hide_eu_customers
ON SCHEMA prod.customers
COMMENT 'Hide European customers from sensitive tables'
ROW FILTER non_eu_region
TO analysts
FOR TABLES
WHEN has_tag_value('sensitivity', 'high')
MATCH COLUMNS has_tag('geo_region') AS region
USING COLUMNS (region);