Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к:
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('pii')).Условия оцениваются управляющей плоскостью. Следующие функции поддерживаются в условиях:
-
Функции тегов (
has_tag()иhas_tag_value()): поддерживаются в обоихWHENиMATCH COLUMNS. При использовании вWHEN, они проверяют теги, установленные непосредственно на таблице или унаследованные из родительского каталога или схемы. При использованииMATCH COLUMNSони проверяют теги, заданные только в столбце. Старые формы верблюжьего регистра (hasTag,hasTagValue) продолжают работать для обратной совместимости. -
Функции атрибутов идентичности (
has_identity_attribute_value()иhas_identity_attribute_tag_match()): поддерживаютсяWHENв клаузе политики столбцов маски, где они оценивают атрибуты идентичности пользователя, выполняющего запрос. Они не поддерживаются вGRANTилиDENYполитиках, или вMATCH COLUMNS. См. Маскировать столбец на основе атрибутов пользователя, отправляющего запрос. -
Функции атрибутов контекста (
has_context_attribute()иhas_context_attribute_value()): поддерживаютсяWHENв клаузуле фильтра строк и политик маски столбцов, где они оценивают контекст запроса, например, вызывающее приложение. Они не поддерживаются вMATCH COLUMNS. См. Ограничение доступа для внешних агентов, действующих от имени пользователя.
Если условие недопустимо, 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);