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. Le policy possono essere filtri riga, maschere a colonna o policy ABACGRANT. I filtri per righe e le maschere a colonna sono applicati a cataloghi, schemi o tabelle, e sono disponibili su Databricks Runtime 16.4 e superiori. Le politiche ABAC GRANT vengono applicate a cataloghi o schemi e concedono dinamicamente privilegi sui titoli che essi sono destinati. Puoi anche aggiungere una policy al metastore in modo che si applichi a tutti i cataloghi del metastore. Vedi le politiche ABAC a livello Metastore (Beta). 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. Per creare una policy ON METASTORE (Beta), devi essere un amministratore del metastore.
Creare, modificare o eliminare una policy DENY o policy ABAC GRANT (Beta) con SQL richiede Databricks Runtime 18 LTS o superiore. Nei SQL warehouse, il supporto dipende dal canale di rilascio del warehouse. Vedi i requisiti di calcolo per GRANT policy e DENY policy.
Creare, modificare o eliminare una policy a livello di metastore (Beta) con SQL richiede Databricks Runtime 19 o superiore. Vedere Requisiti di calcolo.
Note
Databricks Runtime 18 è più recente di Databricks Runtime 18.0, 18.1 e 18.2. Le funzionalità che in precedenza sarebbero state rilasciate come una successiva versione numerata ora vengono invece rilasciate sotto forma di aggiornamenti datati di Databricks Runtime 18. Per ulteriori dettagli, consulta Informazioni sulle note di rilascio unificate.
Sintassi
CREATE [ OR REPLACE ] POLICY policy_name
ON { METASTORE | CATALOG catalog_name | SCHEMA schema_name | TABLE table_name }
[ COMMENT description ]
{ row_filter_body | column_mask_body | grant_policy_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 [, ...] ) ]
grant_policy_body
TO principal [, ...]
[ EXCEPT principal [, ...] ]
GRANT privilege [, ...]
FOR grant_target_type
[ WHEN condition ]
Le policy di filtro a riga e maschera a colonna possono essere definite su un metastore (Beta), catalogo, schema o tabella.
GRANT Le politiche possono essere definite su un metastore, catalogo o schema.
ON METASTORE Non prende nome e prende di mira il metastore in cui stai operando attualmente.
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.
privilegio
In
grant_policy_body, un privilegio da concedere su ogni garantia che corrisponda alla polizza. I privilegi validi dipendono dagrant_target_type. Vedi Tipi e privilegi di sicurezza supportati.grant_target_type
In
grant_policy_body, il tipo di garantible a cui si applicano i privilegi concessi. Usa la forma plurale:MODELS,MODEL SERVICES,MODEL PROVIDER SERVICES,MCP SERVICES, oAGENT SERVICES. La forma sottolineata, comeMODEL_SERVICES, è accettata. Le forme singolari non sono accettate.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);
Il seguente esempio crea una politica ABAC GRANT che concede EXECUTE a ogni servizio modello creato da Anthropic:
> CREATE POLICY grant_anthropic_model_services
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on Anthropic model services'
TO data_scientists
EXCEPT contractors
GRANT EXECUTE FOR MODEL SERVICES
WHEN has_tag_value('ai.model_creator', 'anthropic');