Sdílet prostřednictvím


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 (například podmínky značky na úrovni tabulky). Pro MATCH COLUMNS: logický výraz, který odpovídá sloupcům (například has_tag('tag_name')). Podmínky se vyhodnocují řídicí rovinou na zabezpečitelných metadatech. Jediné uživatelem podporované funkce v podmínkách jsou has_tag(), has_tag_value(), has_column_tag(), a has_column_tag_value(). Starší velbloudí formuláře (hasTag, hasTagValue, hasColumnTag, hasColumnTagValue) nadále fungují pro zpětnou kompatibilitu. 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);