Implementera dynamisk datamaskering

Slutförd

Dynamisk datamaskering fungerar genom att dölja data för att begränsa exponeringen. Användare som inte behöver se känsliga data kan visa kolumnen som innehåller data, men inte själva faktiska data. Dynamisk datamaskering fungerar på presentationslagret och att omaskerade data alltid visas av högprivilegierade användare.

Dynamisk datamaskering har fördelen att det inte kräver många ändringar i programmet eller databasen. Du kan konfigurera den via Azure-portalen eller använda T-SQL på följande sätt.

Skärmbild av T-SQL-kommandon med dynamisk datamaskering.

I exemplet döljs kolumnerna PhoneNumber och EmailAddress från DDMDemo-användare som bara har SELECT behörighet i tabellen. Användaren kan se de fyra sista siffrorna i telefonnumret eftersom det maskeras med hjälp av en partiell funktion som ersätter alla utom de fyra sista siffrorna i kolumnen. Maskeringen anses vara en anpassad funktion. Förutom T-SQL kan du, om du använder Azure SQL Database, skapa regler för dynamisk maskering i Azure-portalen:

Skärmbild av hur du lägger till maskeringsregeln i Azure Portal.

Du kan nå skärmen för att lägga till en maskeringsregel genom att navigera till databasen i Azure Portal och välja Dynamisk datamaskering i avsnittet Säkerhet på huvudbladet för databasen.

Dynamisk datamaskering stöder följande maskeringsmönster som kan användas:

Maskeringsfunktion Definition T-SQL-exempel
Standardvärde Maskerar data i kolumnen utan att exponera någon del av värdena för användaren. Användaren skulle se XXXX för strängvärden, 0 för tal och 01.01.1900 för datumvärden. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'default()')
Kreditkort Maskerar alla utom de sista fyra tecknen så att användarna kan visa de sista fyra siffrorna. Maskeringen kan vara användbar för kundtjänstagenter som behöver visa de fyra sista siffrorna i ett kreditkortsnummer men som inte behöver se hela numret. Data visas i vanligt format för ett kreditkortsnummer XXXX-XXXX-XXXX-XXXX-1234. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'partial(0,"XXXX-XXXX-XXXX-",4)')
E-post Endast den första bokstaven och det avslutande domänsuffixet är inte maskerade. till exempel "aXXX@XXXXXXX.com" ALTER TABLE [Customer] ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Antal Det här maskeringsformatet ska användas i numeriska kolumner. Det visar ett slumpmässigt tal som det maskerade värdet i stället för det faktiska värdet. För varje fråga visas ett annat tal. ALTER TABLE [Customer] ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Anpassad sträng Med det här alternativet kan text maskeras med valfritt värde och visa ett anpassat antal tecken i vardera änden av det maskerade värdet. Om längden på värdet som maskeras är lika med eller mindre än det antal tecken som masken anger ska visas, visas endast de maskerade tecknen. ALTER TABLE [Customer] ALTER COLUMN [PhoneNumber] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Om du vill göra det möjligt för användare att hämta omaskerade data från de kolumner som maskering har definierats för måste du uttryckligen bevilja UNMASK behörighet.

Kommentar

Det är möjligt att identifiera maskerade data med hjälp av slutsatsdragning baserat på resultaten. Om du använder datamaskering bör du också begränsa användarens möjlighet att köra oplanerade frågor.

Därför rekommenderar vi starkt att du använder dynamisk datamaskering med andra säkerhetsfunktioner, till exempel granskning, kryptering, säkerhet på radnivå för att bättre skydda känsliga data.

Användningsfall

Datamaskering är en enkel och enkel funktion, och den är idealisk för många scenarier, inklusive:

  • Maskera data från programanvändare som inte har direkt åtkomst till databasen.

  • Begränsa privat information för en grupp användare.

  • Ge maskerade data till externa leverantörer, där du behöver skydda känslig information samtidigt som du bevarar relationerna mellan objekt i data.

  • Exportera en kopia av produktionsdatabasen till en lägre miljö i utvecklingssyfte med en användare som inte har UNMASK behörighet. Exporten av data kommer att vara i maskerat format.

Importera och exportera data

Om du kopierar data från en maskerad kolumn till en annan tabell med hjälp av SELECT INTO eller INSERT INTO resulterar det i maskerade data i måltabellen.

När en användare utan UNMASK behörighet kör SQL Server Import and Export innehåller den exporterade datafilen maskerade data och den importerade databasen innehåller inaktivt maskerade data.

Mer information om hur dynamisk datamaskering fungerar finns i Dynamisk datamaskering.