Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 16.4 e superior
Unity Catalog apenas
Cria uma apólice nomeada sobre um segurável. As políticas podem ser filtros de linha, máscaras de coluna ou políticas ABACGRANT. Filtros de linhas 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 superiores. As políticas ABAC GRANT são aplicadas a catálogos ou esquemas e concedem privilégios dinamicamente aos securables que visam. Também pode anexar uma política à metastore para que se aplique a todos os catálogos da metastore. Ver políticas ABAC ao nível da Metastore (Beta). O nome da apólice é atribuído ao seguro onde a apólice está definida.
Para executar esta declaração, deve ter o MANAGE privilégio sobre o seguro alvo ou ser o seu proprietário. Para criar uma política ON METASTORE (Beta), tens de ser administrador da metastore.
Criar, modificar ou eliminar uma política DENY ou política ABAC GRANT (Beta) com SQL requer Databricks Runtime 18 LTS ou superior. Nos warehouses SQL, o suporte depende do canal de lançamento do warehouse. Consulte os requisitos de computação para GRANT políticas e DENY políticas.
Criar, modificar ou eliminar uma política ao nível da metastore (Beta) com SQL requer Databricks Runtime 19 ou superior. Ver Requisitos de computação.
Note
O Databricks Runtime 18 é mais recente do que o Databricks Runtime 18.0, 18.1 e 18.2. Funcionalidades que anteriormente seriam enviadas como versões numeradas posteriores agora são enviadas como atualizações datadas do Databricks Runtime 18. Para mais detalhes, consulte Sobre as notas de lançamento 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 ]
As políticas de filtro de linhas e máscaras de coluna podem ser definidas numa metastore (Beta), catálogo, esquema ou tabela.
GRANT As políticas podem ser definidas numa metastore, catálogo ou esquema.
ON METASTORE Não assume nome e dirige-se à metastore onde está atualmente a operar.
Parâmetros
-
Nome da política. O nome é atribuído ao seguro sobre o qual a apólice está definida. Se uma política com o mesmo nome já existir e
OR REPLACEnão for especificada, o Azure Databricks levanta POLICY_ALREADY_EXISTS. -
O nome do catálogo em que a política está definida. Se o tipo securable não for suportado para políticas, o Azure Databricks levanta POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
O nome do esquema em que a política está definida.
-
O nome da tabela onde a apólice está definida.
descrição
Um comentário opcional de string para a política.
-
O nome do UDF usado para o filtro de linha ou máscara de coluna.
privilégio
Em
grant_policy_body, um privilégio para conceder a cada garantia que corresponda à apólice. Os privilégios válidos dependem degrant_target_type. Veja Tipos e privilégios securáveis suportados.grant_target_type
Em
grant_policy_body, o tipo de seguro a que 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 é aceite. Formas singulares não são aceites.principal
Um nome de utilizador, grupo ou principal de serviço. Podem ser listados múltiplos princípios após
TO. Os principais indicados a seguirEXCEPTestão excluídos da apólice.-
WHENé uma expressão booleana que determina se a política se aplica, com base nas etiquetas do securável, nos atributos de identidade do utilizador que faz a consulta e/ou no contexto do pedido.MATCH COLUMNSé uma expressão booleana que corresponde a colunas com base nas suas etiquetas (por exemplo,has_tag('pii')).As condições são avaliadas pelo plano de controlo. As seguintes funções são suportadas em condições:
-
Funções de etiquetas (
has_tag()ehas_tag_value()): suportadas tantoWHENem comoMATCH COLUMNSem . Quando usados emWHEN, verificam etiquetas definidas diretamente na tabela ou herdadas de um catálogo ou esquema pai. Quando usados emMATCH COLUMNS, verificam etiquetas definidas diretamente na coluna apenas. Os antigos formulários camelCase (hasTag,hasTagValue) continuam a funcionar para compatibilidade retroativa. -
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 utilizador que executa a consulta. Não são suportados emGRANTpolíticasDENYou emMATCH COLUMNS. Veja Mascarar uma coluna baseada nos atributos do utilizador 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 do pedido, como a aplicação que chama. Não são suportados emMATCH COLUMNS. Ver Restrição de acesso para agentes externos que atuam em nome de um utilizador.
Se a condição for inválida, o Azure Databricks levanta UC_INVALID_POLICY_CONDITION.
-
Funções de etiquetas (
alias
Em
MATCH COLUMNS, um identificador opcional para a coluna correspondente. O alias pode ser referenciado emUSING COLUMNS(filtro de linha) ou emON COLUMNeUSING COLUMNS(máscara de coluna).function_arg
Em
USING COLUMNS, cada argumento é ou uma expressão constante ou um alias deMATCH COLUMNS. Os argumentos são encaminhados para a função de política por ordem. Se as opções não corresponderem ao tipo de política, o Azure Databricks levanta UC_POLICY_TYPE_OPTIONS_MISMATCH.
Exemplos
O exemplo seguinte cria uma política de coluna de máscara:
> 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 seguinte cria uma política de filtro de linhas:
> 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 seguinte cria uma política ABAC GRANT que concede EXECUTE a todos os serviços modelo criados 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');