Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime 16.4 e versioni successive
solo per Unity Catalog
Crea un criterio denominato in un'entità a protezione diretta. I criteri possono essere filtri di riga o maschere di colonna applicati a cataloghi, schemi o tabelle. Il nome del criterio ha come ambito l'entità a protezione diretta in cui è definito il criterio.
Per eseguire questa istruzione, è necessario avere il MANAGE privilegio per l'entità a protezione diretta di destinazione o essere il proprietario.
Sintassi
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 [, ...] ) ]
Parametri
-
Nome dei criteri. Il nome ha come ambito l'entità a protezione diretta in cui è definito il criterio. Se esiste già un criterio con lo stesso nome e
OR REPLACEnon viene specificato, Azure Databricks genera POLICY_ALREADY_EXISTS. -
Nome del catalogo in cui è definito il criterio. Se il tipo a protezione diretta non è supportato per i criteri, Azure Databricks genera POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
Nome dello schema in cui è definito il criterio.
-
Nome della tabella in cui è definito il criterio.
descrizione
Commento stringa facoltativo per il criterio.
-
Nome della funzione definita dall'utente utilizzata per il filtro di riga o la maschera di colonna.
principal
Un utente, un gruppo o un nome di entità servizio. È possibile elencare più entità dopo
TO. Le entità elencate dopoEXCEPTvengono escluse dai criteri.-
Per
WHEN: un'espressione booleana che corrisponde a entità a protezione diretta (ad esempio, condizioni di tag a livello di tabella). PerMATCH COLUMNS: un'espressione booleana che corrisponde alle colonne , ad esempiohasTag('tag_name'). Le condizioni vengono valutate dal piano di controllo sui metadati a protezione diretta. Le uniche funzioni rivolte all'utente supportate nelle condizioni sonohasTag()ehasTagValue(). Se la condizione non è valida, Azure Databricks genera UC_INVALID_POLICY_CONDITION. alias
In
MATCH COLUMNSun identificatore facoltativo per la colonna corrispondente. È possibile fare riferimento all'alias inUSING COLUMNS(filtro di riga) o inON COLUMNeUSING COLUMNS(maschera di colonna).function_arg
In
USING COLUMNSogni argomento è un'espressione costante o un alias diMATCH COLUMNS. Gli argomenti vengono passati alla funzione di criteri in ordine. Se le opzioni non corrispondono al tipo di criterio, Azure Databricks genera UC_POLICY_TYPE_OPTIONS_MISMATCH.
Examples
Nell'esempio seguente viene creato un criterio della maschera di colonna:
> 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);
Nell'esempio seguente viene creato un criterio di filtro di riga:
> 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);