Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime 16.4 a vyšší
pouze Unity Catalog
Vytvoří pojmenovanou zásadu na zabezpečitelném. Politiky mohou být řádkové filtry, sloupcové masky nebo ABAC GRANT politiky. Řádkové filtry a sloupcové masky se aplikují na katalogy, schémata nebo tabulky a jsou dostupné v Databricks Runtime 16.4 a novějších. Politiky ABAC GRANT se aplikují na katalogy nebo schémata a dynamicky udělují privilegia na zabezpečení, na která cílí. Název zásady je vymezen na zabezpečitelnou zásadu, na které je zásada definována.
Pokud chcete tento příkaz spustit, musíte mít MANAGE oprávnění k cílovému zabezpečitelnému nebo jeho vlastníkovi.
Vytvoření, úprava nebo odstranění ABAC GRANT politiky pomocí SQL vyžaduje Databricks Runtime 18 LTS nebo vyšší. U SQL skladů závisí podpora na kanálu vydání skladu. Viz požadavky na výpočetní prostředky.
Note
Databricks Runtime 18 je novější než Databricks Runtime 18.0, 18.1 a 18.2. Funkce, které by se dříve vydávaly v rámci pozdější číslované verze, se nyní místo toho vydávají jako aktualizace označené datem pro Databricks Runtime 18. Podrobnosti najdete v článku o jednotných poznámkách k verzi.
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 | 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 ]
Řádkové filtry a politiky sloupcových masek lze definovat v katalogu, schématu nebo tabulce. GRANT Politiky lze definovat pouze v katalogu nebo schématu.
Parametry
-
Název zásad Název je vymezen na zabezpečitelnou zásadu, na které je zásada definována. Pokud už zásada se stejným názvem existuje a
OR REPLACEnení zadaná, Azure Databricks vyvolá POLICY_ALREADY_EXISTS. -
Název katalogu, na kterém je zásada definována. Pokud se zabezpečitelný typ pro zásady nepodporuje, Azure Databricks vyvolá POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
Název schématu, na kterém je zásada definována.
-
Název tabulky, pro kterou je zásada definovaná.
popis
Volitelný komentář řetězce pro zásadu.
-
Název UDF, který se používá pro filtr řádků nebo masku sloupce.
oprávnění
grant_policy_bodyV , privilegium udělit každé pojišťovně, která odpovídá pojistce. Platná privilegia závisí nagrant_target_type. Viz Podporované zabezpečené typy a privilegia.grant_target_type
grant_policy_bodyV , typ zajištění, na které se vztahují udělená práva. Použijte množné číslo: , , , ,MCP SERVICES, neboAGENT SERVICES.MODEL PROVIDER SERVICESMODEL SERVICESMODELSPodtržená forma, napříkladMODEL_SERVICES, je také přijímána. Jednotné tvary nejsou přijímány.principal
Název uživatele, skupiny nebo instančního objektu Několik objektů zabezpečení lze uvést za
TO. Objekty zabezpečení uvedené poEXCEPTjsou ze zásad vyloučeny.-
WHENje booleovský výraz, který určuje, zda se politika uplatní, na základě značek securable, atributů identity dotazovaného uživatele a/nebo kontextu požadavku.MATCH COLUMNSje booleovský výraz, který porovnává sloupce podle jejich značek (napříkladhas_tag('pii')).Podmínky jsou vyhodnocovány řídicí rovinou. Následující funkce jsou podporovány za podmínek:
-
Funkce tagů (
has_tag()ahas_tag_value()): podporované jak vWHENtak, tak .MATCH COLUMNSPři použití vWHEN, kontrolují značky nastavené přímo v tabulce nebo zděděné z nadřazeného katalogu či schématu. Při použitíMATCH COLUMNSkontrolují značky nastavené přímo ve sloupci. Starší formuláře camelCase (hasTag,hasTagValue) nadále fungují kvůli zpětné kompatibilitě. -
Funkce atributů identity (
has_identity_attribute_value()ahas_identity_attribute_tag_match()): podporovány v klauzuliWHENpolitik pro sloupcové masky, kde vyhodnocují atributy identity uživatele spouštějícího dotaz. Nejsou podporovány vGRANTDENYpolitikách ani vMATCH COLUMNS. Viz Mask sloupce založený na atributech dotazujícího uživatele. -
Funkce atributů kontextu (
has_context_attribute()ahas_context_attribute_value()): podporované v klauzuliWHENřádkových filtrů a politik sloupcové masky, kde vyhodnocují kontext požadavku, například volající aplikace. Nejsou podporovány vMATCH COLUMNS. Viz Omezit přístup externím agentům jednajícím jménem uživatele.
Pokud je podmínka neplatná, Azure Databricks vyvolá UC_INVALID_POLICY_CONDITION.
-
Funkce tagů (
alias
V
MATCH COLUMNSpřípadě volitelného identifikátoru odpovídajícího sloupce. Na alias se dá odkazovat (USING COLUMNSfiltr řádků) nebo doON COLUMNaUSING COLUMNS(maska sloupce).function_arg
V
USING COLUMNS, každý argument je buď konstantní výraz nebo alias zMATCH COLUMNS. Argumenty se předají funkci zásad v pořadí. Pokud se možnosti neshodují s typem zásad, Azure Databricks vyvolá UC_POLICY_TYPE_OPTIONS_MISMATCH.
Příklady
Následující příklad vytvoří zásadu masky sloupce:
> 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);
Následující příklad vytvoří zásadu filtru řádků:
> 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);
Následující příklad vytváří ABAC GRANT politiku, která uděluje EXECUTE granty na každou modelovou službu vytvořenou 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');