Udostępnij za pośrednictwem


TWORZENIE ZASAD

Dotyczy:oznaczone jako tak Databricks SQL, oznaczone jako tak Databricks Runtime 16.4 i nowsze, oznaczone jako tak tylko katalog Unity

Tworzy nazwane zasady w zabezpieczanym obiekcie. Zasady mogą być filtrami wierszy lub maskami kolumn zastosowanymi do katalogów, schematów lub tabel. Nazwa zasad jest określana w zakresie zabezpieczania zasad.

Aby uruchomić tę instrukcję MANAGE , musisz mieć uprawnienie do zabezpieczania docelowego lub być jego właścicielem.

Składnia

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

    Nazwa zasad. Nazwa jest określana w zakresie zabezpieczania zasad. Jeśli zasady o tej samej nazwie już istnieją i OR REPLACE nie zostały określone, usługa Azure Databricks zgłasza POLICY_ALREADY_EXISTS.

  • catalog_name

    Nazwa katalogu, w którym zdefiniowano zasady. Jeśli zabezpieczany typ nie jest obsługiwany w przypadku zasad, usługa Azure Databricks zgłasza POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.

  • schema_name

    Nazwa schematu, na którym zdefiniowano zasady.

  • table_name

    Nazwa tabeli, w której zdefiniowano zasady.

  • opis

    Opcjonalny komentarz ciągu dla zasad.

  • function_name

    Nazwa funkcji zdefiniowanej przez użytkownika dla filtru wiersza lub maski kolumny.

  • principal

    Nazwa główna użytkownika, grupy lub usługi. Wiele podmiotów zabezpieczeń można wymienić po TO. Podmioty zabezpieczeń wymienione po EXCEPT wykluczonych z zasad.

  • Warunek

    Dla WHEN: wyrażenie logiczne, które pasuje do zabezpieczanych (na przykład warunków tagów na poziomie tabeli). Dla MATCH COLUMNS: wyrażenie logiczne, które pasuje do kolumn (na przykład hasTag('tag_name')). Warunki są oceniane przez płaszczyznę sterowania na zabezpieczanych metadanych. Jedynymi funkcjami dostępnymi dla użytkowników w warunkach są hasTag() i hasTagValue(). Jeśli warunek jest nieprawidłowy, usługa Azure Databricks zgłasza UC_INVALID_POLICY_CONDITION.

  • alias

    W MATCH COLUMNSpliku opcjonalny identyfikator dopasowanej kolumny. Alias można odwoływać się do elementu USING COLUMNS (filtr wiersza) lub w ON COLUMN elemencie i USING COLUMNS (maska kolumny).

  • function_arg

    W elememencie USING COLUMNSkażdy argument jest wyrażeniem stałym lub aliasem z MATCH COLUMNSklasy . Argumenty są przekazywane do funkcji zasad w kolejności. Jeśli opcje nie są zgodne z typem zasad, usługa Azure Databricks zgłasza UC_POLICY_TYPE_OPTIONS_MISMATCH.

Examples

Poniższy przykład tworzy zasady maski kolumn:

> 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 hasTag('ssn') AS ssn
    ON COLUMN ssn
    USING COLUMNS (4);

Poniższy przykład tworzy zasady filtrowania wierszy:

> 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 hasTagValue('sensitivity', 'high')
    MATCH COLUMNS hasTag('geo_region') AS region
    USING COLUMNS (region);