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.-
Para
WHEN: uma expressão booliana que corresponde a protegíveis (por exemplo, condições de marca no nível da tabela). ParaMATCH COLUMNS: uma expressão booliana que corresponde a colunas (por exemplo,has_tag('tag_name')). As condições são avaliadas pelo plano de controle em metadados protegíveis. As únicas funções voltadas para o usuário com suporte em condições sãohas_tag(), ,has_tag_value()ehas_column_tag()has_column_tag_value(). Os formulários camelCase mais antigos (hasTag, ,hasTagValue,hasColumnTag,hasColumnTagValue) continuam a funcionar para compatibilidade com versões anteriores. Se a condição for inválida, o Azure Databricks gerará UC_INVALID_POLICY_CONDITION. 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);