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:✅ SQL-analysslutpunkt och lager i Microsoft Fabric
Dynamisk datamaskering är en dataskyddsfunktion som begränsar exponeringen av känsliga data genom att maskera den för icke-privilegierade användare. Det förenklar utformningen och kodningen av säkerhet i ditt program.
Dynamisk datamaskning hjälper till att förhindra obehörig visning av känsliga data. Administratörer anger hur mycket känsliga data som ska avslöjas, med minimal effekt på programskiktet. Du kan konfigurera dynamisk datamaskering för angivna databasfält för att dölja känsliga data i resultatuppsättningarna med frågor. Data i databasen ändras inte, så befintliga program kan fortsätta att fungera utan ändringar eftersom maskeringsregler tillämpas på frågeresultat. Många program kan maskera känsliga data utan att ändra befintliga frågor.
Dynamisk datamaskning ger följande funktioner:
- En central datamaskeringsprincip fungerar direkt på känsliga fält i databasen.
- Privilegierade användare eller roller kan utses för åtkomst till känsliga data.
- Du har maskeringsalternativ att välja mellan: funktioner för fullständig maskering och partiell maskering och en slumpmässig mask för numeriska data.
- Enkla Transact-SQL-kommandon definierar och hanterar masker.
Dynamisk datamaskering hindrar inte databasanvändare från att ansluta direkt till databasen och köra uttömmande frågor som exponerar delar av känsliga data. Använd dynamisk datamaskering tillsammans med andra Fabric säkerhetsfunktioner som säkerhet på kolumnnivå och säkerhet på radnivå för att skydda känsliga data i databasen.
Funktioner för dynamisk datamaskering
Definiera en maskeringsregel för en kolumn i en tabell för att dölja data i den kolumnen. Det finns fyra typer av masker.
| Funktion | beskrivning | Exempel |
|---|---|---|
| Standardvärde | Fullständig maskering enligt datatyperna för de avsedda fälten. För strängdatatyper använder du XXXX (eller färre) om fältets storlek är mindre än 4 tecken (tecken, nchar, varchar, nvarchar, text, ntext).För numeriska datatyper använder du ett nollvärde (bigint, bit, decimal, int, money, numerisk, smallint, smallmoney, tinyint, float, real). För data av typen datum och tid använder du 1900-01-01 00:00:00.0000000 (date, datetime2, datetime, datetimeoffset, smalldatetime, time).För binära datatyper använder du en enda byte ASCII-värde 0 (binär, varbinär, bild). |
Exempel på kolumndefinitionssyntax: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULLExempel på ändringssyntax: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()') |
Maskeringsmetod som exponerar den första bokstaven i en e-postadress och det konstanta suffixet ".com" i form av en e-postadress.
aXXX@XXXX.com. |
Exempel på definitionssyntax: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULLExempel på ändringssyntax: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()') |
|
| Slumpmässig | En slumpmässig maskeringsfunktion för användning på valfri numerisk typ för att maskera det ursprungliga värdet med ett slumpmässigt värde inom ett angivet intervall. | Exempel på definitionssyntax: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')Exempel på ändringssyntax: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)') |
| Anpassad sträng | Maskeringsmetod som exponerar de första och sista bokstäverna och lägger till en anpassad utfyllnadssträng i mitten. prefix,[padding],suffixOm det ursprungliga värdet är för kort för att slutföra hela masken exponeras inte en del av prefixet eller suffixet. |
Exempel på definitionssyntax: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULLExempel på ändringssyntax: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')Detta omvandlar ett telefonnummer som 555.123.1234 till 5XXXXXXX. Ytterligare exempel: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)') Detta omvandlar ett telefonnummer som 555.123.1234 till 555.1XXXXXXX. |
Fler exempel finns i Så här implementerar du dynamisk datamaskering i Fabric Data Warehouse.
Behörigheter för dynamisk datamaskering
I Fabric Data Warehouse ser användarna maskerade data när de frågar efter maskerade kolumner om de inte är medlemmar i rollerna Administratör, Medlem eller Deltagare på arbetsytan eller inte har utökade behörigheter på lagret.
I följande tabell visas de behörigheter som krävs för varje dynamisk datamaskningsåtgärd:
| Operation | Nödvändig behörighet |
|---|---|
| Skapa en tabell med maskerade kolumner |
CREATE TABLE och ALTER i schemat |
| Lägga till, ersätta eller ta bort en mask i en kolumn |
ALTER ANY MASK och ALTER på tabellen |
| Visa maskerade data |
SELECT på bordet |
| Visa omaskerade data |
UNMASK i kolumnen eller CONTROL i databasen |
Ge ALTER ANY MASK till en säkerhetsansvarig. Bevilja UNMASK till en användare så att användaren kan hämta omaskerade data från maskerade kolumner.
Behörigheten CONTROL för databasen innehåller både ALTER ANY MASK och UNMASK, så att användare som har CONTROL kan visa omaskerade data. Administrativa användare eller roller som Administratör, Medlem eller Deltagare har CONTROL avsiktligt behörighet till databasen och kan visa omaskerade data som standard. Utökade behörigheter i Warehouse omfattar behörigheten CONTROL.
Säkerhetsövervägande: kringgå maskering med hjälp av slutsatsdragnings- eller brute-force-tekniker
Dynamisk datamaskning förenklar programutvecklingen genom att begränsa dataexponeringen i en uppsättning fördefinierade frågor som programmet använder. Även om dynamisk datamaskering också kan bidra till att förhindra oavsiktlig exponering av känsliga data vid direkt åtkomst till data, kan oprivilegierade användare med frågebehörigheter använda tekniker för att härleda faktiska data.
Till exempel kan en användare som har behörighet att köra frågor på lagret gissa värden för att härleda maskerade data. Anta att du definierar en mask i [Employee].[Salary] kolumnen. Användaren ansluter direkt till databasen och börjar gissa värden och lyckas till slut härleda värdet [Salary] i tabellen Employees. De kör en intervallfråga mot Employees tabellen:
SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;
Frågan returnerar:
| ID | Name | Lön |
|---|---|---|
| 62543 | Jane Doe | 0 |
| 91245 | John Smith | 0 |
Även om Salary kolumnen är maskerad (värdena visas som 0) WHERE bekräftar satsen att båda anställda har en lön mellan 99 999 och 100 001 USD. Använd inte enbart dynamisk datamaskering för att skydda känsliga data från användare med frågeåtkomst till slutpunkten för lager- eller SQL-analys. Dynamisk datamaskning är lämplig för att förhindra oavsiktlig exponering av känsliga data, men den skyddar inte mot skadlig avsikt att härleda underliggande data.
Hantera säkerhet på objektnivå korrekt med SQL-detaljerade behörigheter och följ alltid principen om lägsta behörighet.
Relaterat innehåll
- Arbetsyteroller i Fabric-datalagring
- Säkerhet på kolumnnivå i fabric-datalager
- Säkerhet på radnivå i fabric-datalager
- Säkerhet för datalagerhantering i Microsoft Fabric