Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime 16.4 och senare
Endast Unity Catalog
Skapar en namngiven princip för en skyddsbar princip. Principer kan vara radfilter eller kolumnmasker som tillämpas på kataloger, scheman eller tabeller. Principnamnet är begränsat till den skyddbara princip som principen definieras på.
Om du vill köra den här instruktionen måste du ha behörighet att MANAGE skydda målet eller vara dess ägare.
Syntax
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 [, ...] ) ]
Parameters
-
Namnet på principen. Namnet är begränsat till det skyddbara som principen definieras på. Om det redan finns en princip med samma namn och
OR REPLACEinte har angetts, genererar Azure Databricks POLICY_ALREADY_EXISTS. -
Namnet på katalogen där principen definieras. Om den skyddsbara typen inte stöds för principer genererar Azure Databricks POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
Namnet på det schema som principen har definierats för.
-
Namnet på den tabell där principen definieras.
beskrivning
En valfri strängkommentering för principen.
-
Namnet på den UDF som används för radfiltret eller kolumnmasken.
principal
En användare, grupp eller tjänstens huvudnamn. Flera huvudkonton kan visas efter
TO. Huvudkonton som anges efterEXCEPTundantas från principen.-
För
WHEN: ett booleskt uttryck som matchar skyddsbara objekt (till exempel taggvillkor på tabellnivå). FörMATCH COLUMNS: ett booleskt uttryck som matchar kolumner (till exempelhas_tag('tag_name')). Villkor utvärderas av kontrollplanet på säkra metadata. De enda användarinriktade funktioner som stöds under villkor ärhas_tag(),has_tag_value(),has_column_tag()ochhas_column_tag_value(). De äldre camelCase-formulären (hasTag,hasTagValue,hasColumnTag,hasColumnTagValue) fortsätter att fungera för bakåtkompatibilitet. Om villkoret är ogiltigt genererar Azure Databricks UC_INVALID_POLICY_CONDITION. alias
I
MATCH COLUMNS, en valfri identifierare för den matchade kolumnen. Aliaset kan refereras iUSING COLUMNS(radfilter) eller iON COLUMNochUSING COLUMNS(kolumnmask).function_arg
I
USING COLUMNSär varje argument antingen ett konstant uttryck eller ett alias frånMATCH COLUMNS. Argumenten skickas till principfunktionen i ordning. Om alternativen inte matchar principtypen genererar Azure Databricks UC_POLICY_TYPE_OPTIONS_MISMATCH.
Exempel
I följande exempel skapas en kolumnmaskprincip:
> 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);
I följande exempel skapas en radfilterprincip:
> 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);