Implementowanie dynamicznego maskowania danych

Ukończone

Dynamiczne maskowanie danych działa przez zaciemnianie danych w celu ograniczenia ich ujawnienia. Użytkownicy, którzy nie muszą widzieć poufnych danych, mogą wyświetlać kolumnę zawierającą dane, ale nie same dane. Dynamiczne maskowanie danych działa w warstwie prezentacji i że niezamaskowane dane są zawsze widoczne dla użytkowników z wysokimi uprawnieniami.

Dynamiczne maskowanie danych ma zaletę, że nie wymaga wielu modyfikacji aplikacji ani bazy danych. Można ją skonfigurować za pośrednictwem witryny Azure Portal lub przy użyciu języka T-SQL w następujący sposób.

Zrzut ekranu przedstawiający dynamiczne polecenia T-SQL maskowania danych.

W tym przykładzie kolumny PhoneNumber i EmailAddress są ukryte przed użytkownikiem DDMDemo , który ma SELECT tylko uprawnienia do tabeli. Użytkownik może zobaczyć ostatnie cztery cyfry numeru telefonu, ponieważ jest on maskowany przy użyciu funkcji częściowej , która zastępuje wszystkie, ale ostatnie cztery cyfry w kolumnie. To maskowanie jest uważane za funkcję niestandardową. Oprócz języka T-SQL, jeśli używasz usługi Azure SQL Database, możesz utworzyć reguły maskowania dynamicznego w witrynie Azure Portal:

Zrzut ekranu przedstawiający dodawanie reguły maskowania w witrynie Azure Portal.

Aby dodać regułę maskowania, możesz przejść do bazy danych w portalu Azure i wybrać pozycję Dynamiczne maskowanie danych w sekcji Zabezpieczenia w głównym panelu dla bazy danych.

Dynamiczne maskowanie danych obsługuje następujące wzorce maskowania, których można użyć:

Funkcja maskowania Definicja Przykład języka T-SQL
Domyślny Maskuje dane w kolumnie bez uwidaczniania żadnej części wartości użytkownikowi. Użytkownik zobaczy XXXX dla wartości ciągu, 0 dla liczb i 01.01.1900 dla wartości daty. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'default()')
Karta kredytowa Maskuje wszystkie, ale ostatnie cztery znaki, umożliwiając użytkownikom wyświetlanie ostatnich czterech cyfr. To maskowanie może być przydatne w przypadku agentów obsługi klienta, którzy muszą wyświetlić cztery ostatnie cyfry numeru karty kredytowej, ale którzy nie muszą widzieć całej liczby. Dane są wyświetlane w zwykłym formacie karty kredytowej XXXX-XXXX-XXXX-1234. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'partial(0,"XXXX-XXXX-XXXX-",4)')
E-mail Tylko pierwsza litera i sufiks domeny końcowej nie są maskowane; na przykład "aXXX@XXXXXXX.com" ALTER TABLE [Customer] ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Numer Ten format maskowania powinien być używany w kolumnach liczbowych. Przedstawia liczbę losową jako wartość maskowaną zamiast wartości rzeczywistej. W przypadku każdego zapytania jest wyświetlana inna liczba. ALTER TABLE [Customer] ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Ciąg niestandardowy Ta opcja umożliwia maskowanie tekstu z dowolną wartością oraz wyświetlanie niestandardowej liczby znaków na dowolnym końcu maskowanej wartości. Jeśli długość maskowanej wartości jest równa lub mniejsza niż liczba znaków, które określa maska, są wyświetlane tylko zamaskowane znaki. ALTER TABLE [Customer] ALTER COLUMN [PhoneNumber] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Aby umożliwić użytkownikom pobieranie niemaskowanych danych z kolumn, dla których zdefiniowano maskowanie, należy jawnie udzielić UNMASK uprawnień.

Uwaga

Istnieje możliwość zidentyfikowania zamaskowanych danych przy użyciu wnioskowania na podstawie wyników. Jeśli używasz maskowania danych, należy również ograniczyć możliwość uruchamiania nieplanowanych zapytań przez użytkownika.

Z tego powodu zdecydowanie zaleca się używanie dynamicznego maskowania danych z innymi funkcjami zabezpieczeń, takimi jak inspekcja, szyfrowanie, zabezpieczenia na poziomie wiersza w celu lepszej ochrony poufnych danych.

Przypadek użycia

Maskowanie danych to prosta i uproszczona funkcja, która jest idealna w wielu scenariuszach, w tym:

  • Maskuj dane od użytkowników aplikacji, którzy nie mają bezpośredniego dostępu do bazy danych.

  • Ograniczanie informacji prywatnych dla grupy użytkowników.

  • Podaj dane maskowane od zewnętrznych dostawców, gdzie należy chronić poufne informacje, zachowując jednocześnie relacje między elementami w danych.

  • Wyeksportuj kopię produkcyjnej bazy danych do niższego środowiska na potrzeby programowania z użytkownikiem, który nie ma UNMASK uprawnień. Eksport danych będzie mieć zamaskowany format.

Importowanie i eksportowanie danych

Kopiowanie danych z zamaskowanej kolumny do innej tabeli przy użyciu SELECT INTO lub INSERT INTO powoduje zamaskowanie danych w tabeli docelowej.

Gdy użytkownik bez uprawnień UNMASK uruchamia importowanie i eksportowanie programu SQL Server, wyeksportowany plik danych zawiera dane maskowane, a zaimportowana baza danych będzie zawierać nieaktywnie maskowane dane.

Aby dowiedzieć się więcej o tym, jak działa dynamiczne maskowanie danych, zobacz Dynamiczne maskowanie danych.