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 ou máscaras de coluna aplicadas a catálogos, esquemas ou tabelas. 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.
Sintaxe
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 [, ...] ) ]
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.
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);