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 ou máscaras de coluna aplicadas a catálogos, esquemas ou tabelas. 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.
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
-
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.
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.-
Para
WHEN: uma expressão booleana que corresponde aos securáveis (por exemplo, condições de etiqueta ao nível da tabela). ParaMATCH COLUMNS: uma expressão booleana que corresponde a colunas (por exemplo,has_tag('tag_name')). As condições são avaliadas pelo plano de controlo sobre metadados securáveis. As únicas funções dirigidas ao utilizador suportadas em condições sãohas_tag(),has_tag_value(),has_column_tag(), ehas_column_tag_value(). As formas mais antigas camelCase (hasTag,hasTagValue,hasColumnTag,hasColumnTagValue) continuam a funcionar para compatibilidade retroativa. Se a condição for inválida, o Azure Databricks levanta UC_INVALID_POLICY_CONDITION. 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);