VYTVOŘIT ZÁSADU

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime 16.4 a vyšší zaškrtnuto ano 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

  • policy_name

    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 REPLACE není zadaná, Azure Databricks vyvolá POLICY_ALREADY_EXISTS.

  • catalog_name

    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.

  • schema_name

    Název schématu, na kterém je zásada definována.

  • table_name

    Název tabulky, pro kterou je zásada definovaná.

  • popis

    Volitelný komentář řetězce pro zásadu.

  • function_name

    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í na grant_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, nebo AGENT SERVICES. MODEL PROVIDER SERVICESMODEL SERVICESMODELS Podtržená forma, například MODEL_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é po EXCEPT jsou ze zásad vyloučeny.

  • Podmínka

    WHEN je 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 COLUMNS je booleovský výraz, který porovnává sloupce podle jejich značek (například has_tag('pii')).

    Podmínky jsou vyhodnocovány řídicí rovinou. Následující funkce jsou podporovány za podmínek:

    • Funkce tagů (has_tag() a has_tag_value()): podporované jak v WHEN tak, tak .MATCH COLUMNS Při použití v WHEN, 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() a has_identity_attribute_tag_match()): podporovány v klauzuli WHEN politik pro sloupcové masky, kde vyhodnocují atributy identity uživatele spouštějícího dotaz. Nejsou podporovány v GRANTDENY politikách ani v MATCH COLUMNS. Viz Mask sloupce založený na atributech dotazujícího uživatele.
    • Funkce atributů kontextu (has_context_attribute() a has_context_attribute_value()): podporované v klauzuli WHEN řádkových filtrů a politik sloupcové masky, kde vyhodnocují kontext požadavku, například volající aplikace. Nejsou podporovány v MATCH 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.

  • alias

    V MATCH COLUMNSpřípadě volitelného identifikátoru odpovídajícího sloupce. Na alias se dá odkazovat ( USING COLUMNS filtr řádků) nebo do ON COLUMN a USING COLUMNS (maska sloupce).

  • function_arg

    V USING COLUMNS, každý argument je buď konstantní výraz nebo alias z MATCH 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');