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í. Můžete také připojit politiku k metastore, aby platila pro všechny katalogy v metastore. Viz Metastore level ABAC policies (Beta). 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. Pro vytvoření politiky ON METASTORE (Beta) musíte být správce metastore.

Vytvoření, úprava nebo zrušení ABAC GRANT politiky nebo DENY politiky (Beta) 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í výkon pro GRANT politiky a politikyDENY.

Vytvoření, úprava nebo zrušení politiky na úrovni metastore (Beta) pomocí SQL vyžaduje Databricks Runtime 19 nebo vyšší. 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 { 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 ]

Řádkové filtry a politiky sloupcových masek lze definovat na metastore (Beta), katalogu, schématu nebo tabulce. GRANT Politiky lze definovat na metastore, katalogu nebo schématu. ON METASTORE Nebere jméno a cílí na metastore, ve kterém právě působíte.

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');