Kolumnsats mask
Gäller endast för: Databricks SQL
Databricks Runtime 12.2 LTS och senare
i Unity Catalog
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Anger en funktion som tillämpas på en kolumn när rader hämtas från tabellen. Alla framtida frågor från den kolumnen får resultatet av utvärderingen av funktionen över kolumnen i stället för kolumnens ursprungliga värde. Detta kan vara användbart för detaljerade åtkomstkontrollsyften där funktionen kan kontrollera identitets- eller gruppmedlemskap för den anropande användaren för att avgöra om värdet ska redigeras.
Du kan lägga till kolumnmasker när du:
- Skapa en tabell med CREATE TABLE.
- Lägg till kolumner i en tabell med ALTER TABLE ... LÄGG TILL KOLUMN.
- Ändrar en kolumn med ALTER TABLE ... ÄNDRA KOLUMN.
Viktigt!
Masken tillämpas så snart varje rad hämtas från datakällan. Alla uttryck, predikat eller ordning tillämpas efter maskeringen. Till exempel använder koppling mellan den maskerade kolumnen mot en annan kolumn från en annan tabell de maskerade värdena för kopplingsjämförelsen.
Mer information om hur du använder kolumnmasker finns i Filtrera känsliga tabelldata med hjälp av radfilter och kolumnmasker.
Syntax
MASK func_name [ USING COLUMNS ( other_column_name [, ...] ) ]
Parametrar
-
En skalär SQL UDF med minst en parameter.
Den första parametern i SQL UDF mappar 1:1 med den maskerade kolumnen. Den maskerade kolumnens typ måste vara gjutbar till SQL UDF-parametertypen. Om
func_name
det krävs fler parametrar måste argumenten anges avUSING COLUMNS
-satsen.Funktionens returtyp måste vara gjutbar till datatypen för den maskerade kolumnen.
-
Du kan också ange ytterligare kolumner i den maskerade kolumnens tabell som ska skickas till
func_name
. Var ochother_column_name
en måste kunna castas till motsvarande parameter förfunc_name
.Använd en kolumnmask för att selektivt anonymisera värdet
column_identifier
för baserat på att användaren kör en fråga mottable_name
, värdetcolumn_identifier
för och det valfriaother_column
.
Exempel
Du hittar fler exempel i Filtrera känsliga tabelldata med hjälp av radfilter och kolumnmasker.
-- Create a table with a masked column
> CREATE FUNCTION mask_ssn(ssn STRING) RETURN CASE WHEN is_member('HumanResourceDept') THEN ssn ELSE '***-**-****' END;
> CREATE TABLE persons(name STRING, ssn STRING MASK mask_ssn);
> INSERT INTO persons VALUES('James', '123-45-6789';
-- As a non-member of 'HumanResourceDept'
> SELECT * FROM persons;
James ***-**-****
-- As a member of 'HumanResourceDept'
> SELECT * FROM persons;
James 123-45-6789
Relaterade artiklar
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för