Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 16.4 e acima
Somente Unity Catalog
Cria uma política nomeada em um protegível. As políticas podem ser filtros de linha, máscaras de coluna ou políticas ABACGRANT. Filtros de linha e máscaras de coluna são aplicados a catálogos, esquemas ou tabelas, e estão disponíveis no Databricks Runtime 16.4 e superior. As políticas ABAC GRANT são aplicadas a catálogos ou esquemas, e concedem privilégios dinamicamente sobre os valores securáveis que eles têm como alvo. Você também pode anexar uma política à metastore para que ela se aplique a todos os catálogos da metastore. Veja políticas ABAC em nível Metastore (Beta). O nome da política tem como escopo o protegível em que a política está definida.
Para executar essa instrução, você deve ter o MANAGE privilégio no destino protegível ou ser seu proprietário. Para criar uma política ON METASTORE (Beta), você deve ser administrador de metastore.
Criar, modificar ou eliminar uma política DENY ou política ABAC GRANT (Beta) com SQL requer Databricks Runtime 18 LTS ou superior. Em warehouses SQL, o suporte depende do canal de lançamento do warehouse. Veja os requisitos de computação para GRANT políticas e DENY políticas.
Criar, modificar ou eliminar uma política em nível de metastore (Beta) com SQL requer Databricks Runtime 19 ou superior. Consulte os requisitos de computação.
Nota
O Databricks Runtime 18 é mais recente que o Databricks Runtime 18.0, 18.1 e 18.2. Os recursos que anteriormente seriam lançados em uma versão numerada posterior agora passam a ser lançados na forma de atualizações datadas para o Databricks Runtime 18. Para obter detalhes, consulte Sobre notas de versão unificadas.
Sintaxe
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 ]
Políticas de filtro de linha e máscaras de coluna podem ser definidas em uma metastore (Beta), catálogo, esquema ou tabela.
GRANT Políticas podem ser definidas em uma metastore, catálogo ou esquema.
ON METASTORE não toma nome e mira na metastore onde você está operando atualmente.
Parâmetros
-
O nome da política. O nome tem como escopo o protegível em que a política está definida. Se uma política com o mesmo nome já existir e
OR REPLACEnão for especificada, o Azure Databricks gerará POLICY_ALREADY_EXISTS. -
O nome do catálogo no qual a política é definida. Se o tipo protegível não tiver suporte para políticas, o Azure Databricks gerará POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
O nome do esquema no qual a política é definida.
-
O nome da tabela na qual a política é definida.
descrição
Um comentário de cadeia de caracteres opcional para a política.
-
O nome da UDF usada para o filtro de linha ou máscara de coluna.
privilégio
Em
grant_policy_body, um privilégio para conceder sobre cada garantia que corresponda à apólice. Os privilégios válidos dependem degrant_target_type. Veja Tipos e privilégios de segurança suportados.grant_target_type
Em
grant_policy_body, o tipo de garantia ao qual os privilégios concedidos se aplicam. Use a forma plural:MODELS,MODEL SERVICES,MODEL PROVIDER SERVICES,MCP SERVICES, ouAGENT SERVICES. A forma sublinhada, comoMODEL_SERVICES, também é aceita. Formas singulares não são aceitas.principal
Um nome de usuário, grupo ou entidade de serviço. Várias entidades de segurança podem ser listadas após
TO. As entidades de segurança listadas depoisEXCEPTsão excluídas da política.-
WHENé uma expressão booleana que determina se a política se aplica, com base nas tags do segurável, nos atributos de identidade do usuário que consulta e/ou no contexto da solicitação.MATCH COLUMNSé uma expressão booleana que corresponde às colunas com base em suas tags (por exemplo,has_tag('pii')).As condições são avaliadas pelo plano de controle. As seguintes funções são suportadas em condições:
-
Funções de tag (
has_tag()ehas_tag_value()): suportadas tantoWHENem quantoMATCH COLUMNSem . Quando usados emWHEN, eles verificam tags definidas diretamente na tabela ou herdadas de um catálogo ou esquema pai. Quando usados,MATCH COLUMNSeles verificam as marcas definidas diretamente apenas na coluna. Os formulários camelCase mais antigos (hasTag,hasTagValue) continuam funcionando para compatibilidade com versões anteriores. -
Funções de atributos identidade (
has_identity_attribute_value()ehas_identity_attribute_tag_match()): suportadas naWHENcláusula das políticas de máscara de coluna, onde avaliam os atributos de identidade do usuário que executa a consulta. Eles não são apoiados emGRANTpolíticasDENYou emMATCH COLUMNS. Veja Mascarar uma coluna baseada nos atributos do usuário que faz a consulta. -
Funções de atributo de contexto (
has_context_attribute()ehas_context_attribute_value()): suportadas naWHENcláusula de filtro de linha e políticas de máscara de coluna, onde avaliam o contexto da solicitação, como a aplicação que chama. Eles não são suportados emMATCH COLUMNS. Veja Restringir acesso para agentes externos atuando em nome de um usuário.
Se a condição for inválida, o Azure Databricks gerará UC_INVALID_POLICY_CONDITION.
-
Funções de tag (
alias
In
MATCH COLUMNS, um identificador opcional para a coluna correspondente. O alias pode ser referenciado emUSING COLUMNS(filtro de linha) ou dentroON COLUMNeUSING COLUMNS(máscara de coluna).function_arg
Em
USING COLUMNS, cada argumento é uma expressão constante ou um alias deMATCH COLUMNS. Os argumentos são passados para a função de política em ordem. Se as opções não corresponderem ao tipo de política, o Azure Databricks gerará UC_POLICY_TYPE_OPTIONS_MISMATCH.
Exemplos
O exemplo a seguir cria uma política de máscara de coluna:
> 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);
O exemplo a seguir cria uma política de filtro de linha:
> 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);
O exemplo a seguir cria uma política ABAC GRANT que concede EXECUTE para todo serviço modelo criado pela 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');