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. Zásady můžou být filtry řádků nebo masky sloupců použité u katalogů, schémat nebo tabulek. 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.

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 }

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 [, ...] ) ]

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.

  • 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

    Pro WHEN: logický výraz, který odpovídá zabezpečitelným výrazům na základě jejich značek (například has_tag('sensitivity')). Pro MATCH COLUMNS: logický výraz, který odpovídá sloupcům na základě jejich značek (například has_tag('pii')). Podmínky se vyhodnocují řídicí rovinou na zabezpečitelných metadatech. Jediné uživatelem podporované funkce v podmínkách jsou has_tag() a has_tag_value(). Při použití WHENv těchto funkcích zkontrolují značky nastavené přímo v tabulce nebo zděděné z nadřazeného katalogu nebo 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ě. 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);