Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime 16.4 en hoger
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
-
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 REPLACEniet is opgegeven, genereert Azure Databricks POLICY_ALREADY_EXISTS. -
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.
-
De naam van het schema waarop het beleid is gedefinieerd.
-
De naam van de tabel waarop het beleid is gedefinieerd.
beschrijving
Een optionele tekenreekscommentaar voor het beleid.
-
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 nadatEXCEPTze zijn uitgesloten van het beleid.-
Voor
WHEN: een Booleaanse expressie die overeenkomt met beveiligbare objecten (bijvoorbeeld tagvoorwaarden op tabelniveau). VoorMATCH COLUMNS: een Booleaanse expressie die overeenkomt met kolommen (bijvoorbeeldhas_tag('tag_name')). Voorwaarden worden geëvalueerd door het besturingsvlak op beveiligbare metagegevens. De enige gebruikersgerichte functies die in voorwaarden worden ondersteund, zijnhas_tag(),has_tag_value()enhas_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 inUSING COLUMNS(rijfilter) of inON COLUMNenUSING COLUMNS(kolommasker).function_arg
In
USING COLUMNS, elk argument is een constante expressie of een alias vanMATCH 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);