Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime 16.4 et versions ultérieures
Unity Catalog uniquement
Crée une stratégie nommée sur un élément sécurisable. Les stratégies peuvent être des filtres de lignes ou des masques de colonne appliqués aux catalogues, schémas ou tables. Le nom de la stratégie est limité à l’élément sécurisable sur lequel la stratégie est définie.
Pour exécuter cette instruction, vous devez disposer du MANAGE privilège sur la cible sécurisable ou être son propriétaire.
Syntaxe
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 [, ...] ) ]
Paramètres
-
Nom de la stratégie. Le nom est limité à l’élément sécurisable sur lequel la stratégie est définie. Si une stratégie portant le même nom existe déjà et
OR REPLACEn’est pas spécifiée, Azure Databricks déclenche POLICY_ALREADY_EXISTS. -
Nom du catalogue sur lequel la stratégie est définie. Si le type sécurisable n’est pas pris en charge pour les stratégies, Azure Databricks déclenche POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
Nom du schéma sur lequel la stratégie est définie.
-
Nom de la table sur laquelle la stratégie est définie.
description
Commentaire de chaîne facultatif pour la stratégie.
-
Nom de la fonction UDF utilisée pour le filtre de ligne ou le masque de colonne.
principal
Nom d’utilisateur, de groupe ou de principal de service. Plusieurs principaux peuvent être répertoriés après
TO. Les principaux répertoriés aprèsEXCEPTsont exclus de la stratégie.-
Pour
WHEN: expression booléenne qui correspond aux éléments sécurisables (par exemple, conditions de balise au niveau de la table). PourMATCH COLUMNS: expression booléenne qui correspond aux colonnes (par exemple,hasTag('tag_name')). Les conditions sont évaluées par le plan de contrôle sur les métadonnées sécurisables. Les seules fonctions accessibles par l’utilisateur prises en charge dans les conditions sonthasTag()ethasTagValue(). Si la condition n’est pas valide, Azure Databricks déclenche UC_INVALID_POLICY_CONDITION. alias
Dans
MATCH COLUMNS, identificateur facultatif pour la colonne correspondante. L’alias peut être référencé dansUSING COLUMNS(filtre de lignes) ou dansON COLUMNetUSING COLUMNS(masque de colonne).function_arg
Dans
USING COLUMNS, chaque argument est une expression constante ou un alias deMATCH COLUMNS. Les arguments sont passés à la fonction de stratégie dans l’ordre. Si les options ne correspondent pas au type de stratégie, Azure Databricks déclenche UC_POLICY_TYPE_OPTIONS_MISMATCH.
Exemples
L’exemple suivant crée une stratégie de masque de colonne :
> 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 hasTag('ssn') AS ssn
ON COLUMN ssn
USING COLUMNS (4);
L’exemple suivant crée une stratégie de filtre de lignes :
> 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 hasTagValue('sensitivity', 'high')
MATCH COLUMNS hasTag('geo_region') AS region
USING COLUMNS (region);