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. Polityki mogą być filtrami wierszowymi, maskami kolumnowymi lub politykami ABACGRANT. Filtry wierszowe i maski kolumnowe są stosowane do katalogów, schematów lub tabel i są dostępne w Databricks Runtime 16.4 i wyższych. Polityki ABAC GRANT są stosowane do katalogów lub schematów i dynamicznie przyznają przywileje na zabezpieczenia, do których są skierowane. 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.

Tworzenie, modyfikowanie lub rezygnacja z polityki ABAC GRANT w SQL wymaga Databricks Runtime 18 LTS lub nowszego. W magazynach SQL wsparcie zależy od kanału wydania magazynu. Zobacz Wymagania dotyczące obliczeń.

Note

Środowisko Databricks Runtime 18 jest nowsze niż środowisko Databricks Runtime 18.0, 18.1 i 18.2. Funkcje, które wcześniej byłyby wydawane jako późniejsza wersja z kolejnym numerem, są teraz zamiast tego wydawane jako aktualizacje Databricks Runtime 18 oznaczone datą. Aby uzyskać szczegółowe informacje, zobacz Informacje o ujednoliconej wersji.

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 | 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 ]

Politykę filtrów wierszowych i masek kolumn można zdefiniować na katalogu, schemacie lub tabeli. GRANT Polityki mogą być definiowane wyłącznie na podstawie katalogu lub schematu.

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.

  • uprawnienie

    grant_policy_bodyW , przywilej przyznania każdej zabezpieczonej ochronie odpowiadającej polisie. Ważne uprawnienia zależą od grant_target_type. Zobacz Obsługiwane zabezpieczone typy i uprawnienia.

  • grant_target_type

    W grant_policy_body, typ zabezpieczenia, do którego przysługują przywileje. Użyj formy liczby mnogiej: MODELS, MODEL SERVICES, MODEL PROVIDER SERVICES, , MCP SERVICESlub AGENT SERVICES. Akceptowana jest także forma podkreślona, taka jak MODEL_SERVICES, . Formy pojedyncze nie są akceptowane.

  • 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

    WHEN to wyrażenie boolowske, które określa, czy polityka ma zastosowanie, na podstawie tagów zabezpieczenia, atrybutów tożsamości użytkownika zapytującego i/lub kontekstu żądania.

    MATCH COLUMNS to wyrażenie boolowske, które dopasowuje kolumny na podstawie ich tagów (na przykład has_tag('pii')).

    Warunki są oceniane przez płaszczyznę sterowania. Następujące funkcje są obsługiwane w warunkach:

    • Funkcje tagów (has_tag() i has_tag_value()): obsługiwane zarówno w WHEN , jak i MATCH COLUMNS. Gdy są używane w WHEN, sprawdzają tagi ustawione bezpośrednio na tabeli lub odziedziczone z katalogu nadrzędnego lub schematu. W przypadku użycia w programie MATCH COLUMNSsprawdzają tagi ustawiane bezpośrednio tylko w kolumnie. Starsze formularze camelCase (hasTag, hasTagValue) nadal działają w celu zapewnienia zgodności z poprzednimi wersjami.
    • Funkcje atrybutów tożsamości (has_identity_attribute_value() oraz has_identity_attribute_tag_match()): wspierane w klauzuli WHEN polityk maski kolumnowej, gdzie oceniają atrybuty tożsamości użytkownika wykonującego zapytanie. Nie są wspierane w GRANT politykach ani DENY w MATCH COLUMNS. Zobacz Maskuj kolumnę opartą na atrybutach użytkownika zapytującego.
    • Funkcje atrybutów kontekstu (has_context_attribute() oraz has_context_attribute_value()): obsługiwane w klauzuli WHEN filtrów wierszowych i polityk masek kolumnowych, gdzie oceniają kontekst żądania, takiego jak wywołująca aplikacja. Nie są one wspierane w MATCH COLUMNS. Zobacz Ogranicz dostęp dla zewnętrznych agentów działających w imieniu użytkownika.

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

Poniższy przykład tworzy politykę ABACGRANT, która przyznaje EXECUTE przyznaje na każdą modelową usługę stworzoną przez 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');