BELEID MAKEN

Van toepassing op:aanvinkteken ja Databricks SQL aanvinkteken ja Databricks Runtime 16.4 en hoger aanvinkteken ja alleen Unity Catalog

Hiermee maakt u een benoemd beleid voor een beveiligbaar beleid. Beleidsregels kunnen rijfilters, kolommaskers of ABAC-beleidsregels GRANTzijn. Rijfilters en kolommaskers worden toegepast op catalogi, schema's of tabellen, en zijn beschikbaar op Databricks Runtime 16.4 en hoger. ABAC-beleidslijnen GRANT worden toegepast op catalogi of schema's en verlenen dynamisch privileges op de securabelen waarop ze zich richten. Je kunt ook een beleid koppelen aan de metastore zodat het geldt voor elke catalogus in de metastore. Zie de ABAC-beleidsregels op Metastore-niveau (Bèta). De beleidsnaam is gericht op het beveiligbare beleid waarop het beleid is gedefinieerd.

Als u deze instructie wilt uitvoeren, moet u beschikken over de MANAGE bevoegdheid voor het beveiligbare doel of de eigenaar ervan. Om een beleid ON METASTORE (Beta) te maken, moet je een metastore-beheerder zijn.

Het aanmaken, aanpassen of verwijderen van een ABAC-beleid GRANT of DENY -beleid (Beta) met SQL vereist Databricks Runtime 18 LTS of hoger. Bij SQL-warehouses hangt de ondersteuning af van het releasekanaal van het warehouse. Zie de rekenvereisten voor GRANT beleidsregels en DENY beleidslijnen.

Het aanmaken, aanpassen of verwijderen van een metastore-niveau beleid (Beta) met SQL vereist Databricks Runtime 19 of hoger. Zie Compute-vereisten.

Note

Databricks Runtime 18 is nieuwer dan Databricks Runtime 18.0, 18.1 en 18.2. Functies die eerder als een latere genummerde versie werden verzonden, worden nu verzonden als gedateerde updates voor Databricks Runtime 18. Zie Over gecombineerde releasenotes voor meer informatie.

Syntaxis

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 ]

Rijfilter- en kolommaskerbeleid kunnen worden gedefinieerd op een metastore (bèta), catalogus, schema of tabel. GRANT Beleidsregels kunnen worden gedefinieerd op een metastore, catalogus of schema. ON METASTORE neemt geen naam aan en richt zich op de metastore waarin je momenteel werkt.

Parameterwaarden

  • policy_name

    Naam van het beleid. De naam is afgestemd op het beveiligbare beleid waarop het beleid is gedefinieerd. Als er al een beleid met dezelfde naam bestaat en OR REPLACE niet is opgegeven, genereert Azure Databricks POLICY_ALREADY_EXISTS.

  • catalog_name

    De naam van de catalogus waarop het beleid is gedefinieerd. Als het beveiligbare type niet wordt ondersteund voor beleid, verhoogt Azure Databricks POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.

  • schema_name

    De naam van het schema waarop het beleid is gedefinieerd.

  • table_name

    De naam van de tabel waarop het beleid is gedefinieerd.

  • beschrijving

    Een optionele tekenreekscommentaar voor het beleid.

  • function_name

    De naam van de UDF die wordt gebruikt voor het rijfilter of kolommasker.

  • bevoegdheden

    In grant_policy_body, een privilege om te verlenen op elke sekourable die overeenkomt met het beleid. De geldige privileges hangen af van grant_target_type. Zie ondersteunde beveiligbare typen en bevoegdheden.

  • grant_target_type

    In grant_policy_body, het type verzekerde bevoegdheden waarop de verleende privileges van toepassing zijn. Gebruik de meervoudsvorm: MODELS, MODEL SERVICES, MODEL PROVIDER SERVICES, , MCP SERVICES, AGENT SERVICES (Beta), of SKILLS (Beta). De onderstreepte vorm, zoals MODEL_SERVICES, wordt ook geaccepteerd. Enkelvoud worden niet geaccepteerd.

  • principal

    Een naam voor een gebruiker, groep of service-principal. Er kunnen meerdere principals worden weergegeven na TO. Principals die worden vermeld nadat EXCEPT ze zijn uitgesloten van het beleid.

  • Voorwaarde

    WHEN is een booleaanse uitdrukking die bepaalt of het beleid van toepassing is, op basis van de tags van de Securable, de identiteitsattributen van de gebruiker die het aanvraagt, en/of de context van het verzoek.

    MATCH COLUMNS is een booleaanse expressie die kolommen overeenkomt op basis van hun tags (bijvoorbeeld has_tag('pii')).

    Omstandigheden worden geëvalueerd door het controlevlak. De volgende functies worden ondersteund in voorwaarden:

    • Tagfuncties (has_tag() en has_tag_value()): ondersteund in zowel WHEN als MATCH COLUMNS. Wanneer gebruikt in WHEN, controleren ze tags die direct op de tabel zijn gezet of geërfd zijn van een oudercatalogus of schema. Wanneer ze worden MATCH COLUMNSgebruikt, controleren ze de tags die rechtstreeks op de kolom zijn ingesteld. De oudere camelCase-formulieren (hasTag, hasTagValue) blijven werken voor achterwaartse compatibiliteit.
    • Identiteitsattribuutfuncties (has_identity_attribute_value() en has_identity_attribute_tag_match()): ondersteund in de WHEN clausule van kolommasker-beleid, waarbij ze de identiteitsattributen van de gebruiker evalueren die de query uitvoert. Ze worden niet ondersteund in GRANT of DENY beleid of in MATCH COLUMNS. Zie Mask een kolom gebaseerd op attributen van de zoekende gebruiker.
    • Contextattribuutfuncties (has_context_attribute() en has_context_attribute_value()): worden ondersteund in de WHEN clausule van rijfilter- en kolommaskerbeleid, waarbij ze de context van het verzoek evalueren, zoals de aanroepende applicatie. Ze worden niet ondersteund in MATCH COLUMNS. Zie Toegang beperken voor externe agenten die namens een gebruiker optreden.

    Als de voorwaarde ongeldig is, genereert Azure Databricks UC_INVALID_POLICY_CONDITION.

  • alias

    In MATCH COLUMNS, een optionele id voor de overeenkomende kolom. Er kan naar de alias worden verwezen in USING COLUMNS (rijfilter) of in ON COLUMN en USING COLUMNS (kolommasker).

  • function_arg

    In USING COLUMNS, elk argument is een constante expressie of een alias van MATCH COLUMNS. De argumenten worden op volgorde doorgegeven aan de beleidsfunctie. Als de opties niet overeenkomen met het beleidstype, genereert Azure Databricks UC_POLICY_TYPE_OPTIONS_MISMATCH.

Examples

In het volgende voorbeeld wordt een beleid voor kolommaskers gemaakt:

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

In het volgende voorbeeld wordt een rijfilterbeleid gemaakt:

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

Het volgende voorbeeld creëert een ABAC-beleid GRANT dat op elke door Anthropic gemaakte modeldienst toestaatEXECUTE:

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