Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к:
Databricks SQL
Databricks Runtime 16.4 и выше
.
Создает именованную политику для защищаемого объекта. Политики могут быть фильтрами строк, столбцовыми масками или ABAC-политикамиGRANT. Фильтры строк и маски столбцов применяются к каталогам, схемам или таблицам и доступны в Databricks Runtime 16.4 и выше. Политики ABAC GRANT применяются к каталогам или схемам и динамически предоставляют привилегии на защищённые объекты, на которые они нацелены. Вы также можете добавить политику к метамагазину, чтобы она применялась ко всем каталогам в метамагазине. См. политики ABAC уровня Metastore (бета). Имя политики распространяется на защищаемую политику.
Для выполнения этой инструкции необходимо иметь MANAGE привилегии для защищаемого целевого объекта или быть его владельцем. Чтобы создать политику ON METASTORE (бета), вы должны быть администратором метамагазина.
Создание, изменение или отказ от политики ABAC GRANT ( DENY Beta) с SQL требует Databricks Runtime 18 LTS и выше. В SQL-складах поддержка зависит от канала релиза склада. Смотрите требования к вычислению дляGRANT политик и DENY политик.
Для создания, изменения или отказа от политики на уровне метамагазина (Beta) с SQL требуется Databricks Runtime 19 и выше. См. требования к вычислениям.
Замечание
Databricks Runtime 18 является более новым, чем Databricks Runtime 18.0, 18.1 и 18.2. Функции, которые раньше выпускались бы в более поздних номерных версиях, теперь вместо этого выпускаются в виде датированных обновлений для Databricks Runtime 18. Дополнительные сведения см. в статье Об унифицированных примечаниях к выпуску.
Синтаксис
CREATE [ OR REPLACE ] POLICY policy_name
ON { METASTORE | CATALOG catalog_name | SCHEMA schema_name | TABLE table_name }
[ COMMENT description ]
{ row_filter_body | column_mask_body | grant_policy_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 [, ...] ) ]
grant_policy_body
TO principal [, ...]
[ EXCEPT principal [, ...] ]
GRANT privilege [, ...]
FOR grant_target_type
[ WHEN condition ]
Политики фильтрации строк и маски столбцов могут быть определены в метамагазине (Beta), каталоге, схеме или таблице.
GRANT Политики могут быть определены в метамагазине, каталоге или схеме.
ON METASTORE Без названия и нацелено на тот Metastore, в котором вы сейчас работаете.
Параметры
-
Имя политики. Имя определяется защищаемой политикой. Если политика с тем же именем уже существует и
OR REPLACEне указана, Azure Databricks вызывает POLICY_ALREADY_EXISTS. -
Имя каталога, в котором определена политика. Если защищаемый тип не поддерживается для политик, Azure Databricks вызывает POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
Имя схемы, в которой определена политика.
-
Имя таблицы, в которой определена политика.
описание
Необязательный строковый комментарий для политики.
-
Имя UDF, используемого для фильтра строк или маски столбцов.
привилегия
В
grant_policy_body, привилегия предоставлять по каждому обеспеченному платежу, соответствующему полису. Действительные привилегии зависят отgrant_target_type. См. раздел Поддерживаемые защищённые типы и привилегии.grant_target_type
В , тип гарантируемых объектов, к
grant_policy_bodyкоторому применяются предоставленные привилегии. Используйте форму множественного числа:MODELS,MODEL SERVICES,MODEL PROVIDER SERVICESMCP SERVICESAGENT SERVICES, , (Beta) илиSKILLS(Beta). Подчёркнутая форма, такаяMODEL_SERVICESкак , также принимается. Формы единственного числа не принимаются.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);
Следующий пример создаёт политику ABACGRANT, которая предоставляет EXECUTE гранты на каждую модельную услугу, созданную Anthropic:
> CREATE POLICY grant_anthropic_model_services
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on Anthropic model services'
TO data_scientists
EXCEPT contractors
GRANT EXECUTE FOR MODEL SERVICES
WHEN has_tag_value('ai.model_creator', 'anthropic');