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.-
WHENè un'espressione booleana che determina se la policy si applica, basandosi sui tag del securable, sugli attributi di identità dell'utente che fa la query e/o sul contesto della richiesta.MATCH COLUMNSè un'espressione booleana che corrisponde alle colonne in base ai loro tag (ad esempio,has_tag('pii')).Le condizioni sono valutate dal piano di controllo. Le seguenti funzioni sono supportate in condizioni:
-
Funzioni tag (
has_tag()ehas_tag_value()): supportate siaWHENin .MATCH COLUMNSQuando usati inWHEN, controllano i tag impostati direttamente sulla tabella o ereditati da un catalogo o schema genitore. Se usato inMATCH COLUMNS, controllano i tag impostati direttamente sulla colonna. I formati camelCase precedenti (hasTag,hasTagValue) continuano a funzionare per garantire la compatibilità con le versioni precedenti. -
Funzioni di attributo identità (
has_identity_attribute_value()ehas_identity_attribute_tag_match()): supportate nellaWHENclausola delle policy di maschera a colonna, dove valutano gli attributi identità dell'utente che esegue la query. Non sono supportate inGRANTpoliticheDENYo inMATCH COLUMNS. Vedi Mascherare una colonna basata sugli attributi dell'utente che fa la query. -
Funzioni di attributo di contesto (
has_context_attribute()ehas_context_attribute_value()): supportate nellaWHENclausola di policy di filtro riga e maschera a colonna, dove valutano il contesto della richiesta, come l'applicazione chiamante. Non sono supportati inMATCH COLUMNS. Vedi Restringire l'accesso per agenti esterni che agiscono per conto di un utente.
Se la condizione non è valida, Azure Databricks genera UC_INVALID_POLICY_CONDITION.
-
Funzioni tag (
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 has_tag('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 has_tag_value('sensitivity', 'high')
MATCH COLUMNS has_tag('geo_region') AS region
USING COLUMNS (region);