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, 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
-
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.
bevoegdheden
In
grant_policy_body, een privilege om te verlenen op elke sekourable die overeenkomt met het beleid. De geldige privileges hangen af vangrant_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), ofSKILLS(Beta). De onderstreepte vorm, zoalsMODEL_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 nadatEXCEPTze zijn uitgesloten van het beleid.-
WHENis 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 COLUMNSis een booleaanse expressie die kolommen overeenkomt op basis van hun tags (bijvoorbeeldhas_tag('pii')).Omstandigheden worden geëvalueerd door het controlevlak. De volgende functies worden ondersteund in voorwaarden:
-
Tagfuncties (
has_tag()enhas_tag_value()): ondersteund in zowelWHENalsMATCH COLUMNS. Wanneer gebruikt inWHEN, controleren ze tags die direct op de tabel zijn gezet of geërfd zijn van een oudercatalogus of schema. Wanneer ze wordenMATCH 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()enhas_identity_attribute_tag_match()): ondersteund in deWHENclausule van kolommasker-beleid, waarbij ze de identiteitsattributen van de gebruiker evalueren die de query uitvoert. Ze worden niet ondersteund inGRANTofDENYbeleid of inMATCH COLUMNS. Zie Mask een kolom gebaseerd op attributen van de zoekende gebruiker. -
Contextattribuutfuncties (
has_context_attribute()enhas_context_attribute_value()): worden ondersteund in deWHENclausule van rijfilter- en kolommaskerbeleid, waarbij ze de context van het verzoek evalueren, zoals de aanroepende applicatie. Ze worden niet ondersteund inMATCH COLUMNS. Zie Toegang beperken voor externe agenten die namens een gebruiker optreden.
Als de voorwaarde ongeldig is, genereert Azure Databricks UC_INVALID_POLICY_CONDITION.
-
Tagfuncties (
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);
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');