Delen via


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 of kolommaskers zijn die zijn toegepast op catalogi, schema's of tabellen. 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.

Syntaxis

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

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.

  • 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

    Voor WHEN: een Booleaanse expressie die overeenkomt met beveiligbare objecten (bijvoorbeeld tagvoorwaarden op tabelniveau). Voor MATCH COLUMNS: een Booleaanse expressie die overeenkomt met kolommen (bijvoorbeeld has_tag('tag_name')). Voorwaarden worden geëvalueerd door het besturingsvlak op beveiligbare metagegevens. De enige gebruikersgerichte functies die in voorwaarden worden ondersteund, zijn has_tag(), has_tag_value()en has_column_tag_value()has_column_tag(). De oudere camelCase-formulieren (hasTag, hasTagValue, hasColumnTag, hasColumnTagValue) blijven werken voor achterwaartse compatibiliteit. 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);