Implementieren der dynamischen Datenmaskierung
dynamische Datenformatierung funktioniert, indem Daten verschleiert werden, um die Belichtung zu begrenzen. Benutzer, die keine vertraulichen Daten sehen müssen, können die Spalte anzeigen, die die Daten enthält, aber nicht die tatsächlichen Daten selbst. Die dynamische Datenformatierung funktioniert auf der Präsentationsebene, und dass ungemaskete Daten immer von benutzern mit hoher Rechte sichtbar sind.
Die dynamische Datenmaskierung hat den Vorteil, dass sie keine großen Änderungen an der Anwendung oder Datenbank erfordert. Sie können sie über das Azure-Portal konfigurieren oder T-SQL wie folgt verwenden.
Im Beispiel werden die Spalten "PhoneNumber " und " EmailAddress " vom DDMDemo-Benutzer ausgeblendet, der nur über die Berechtigung für die Tabelle verfügt SELECT . Dem Benutzer werden nur die letzten vier Ziffern der Telefonnummer angezeigt, da diese mit einer partial-Funktion maskiert wurde, die alle Ziffern bis auf die letzten vier in der Spalte ersetzt. Diese Maskierung wird als benutzerdefinierte Funktion angesehen. Zusätzlich zu T-SQL können Sie, wenn Sie Azure SQL-Datenbank verwenden, dynamische Maskierungsregeln im Azure-Portal erstellen:
Sie gelangen zu diesem Bildschirm, indem Sie im Azure-Portal zu Ihrer Datenbank navigieren und im Abschnitt Sicherheit des Hauptblatts für Ihre Datenbank Dynamische Datenmaskierung auswählen.
Die dynamische Datenmaskierung unterstützt die folgenden Maskierungsmuster:
| Maskierungsfunktion | Definition | T-SQL-Beispiel |
|---|---|---|
| Standard | Maskiert die Daten in der Spalte, ohne einen Teil der Werte für den Benutzer sichtbar zu machen. Der Benutzer sieht XXXX für Zeichenfolgenwerte, 0 für Zahlen und 01.01.1900 für Datumswerte. | ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'default()') |
| Kreditkarte | Maskiert alle Zeichen bis auf die letzten vier, sodass Benutzern die letzten vier Ziffern angezeigt werden. Diese Maskierung kann für Kundendienstmitarbeiter nützlich sein, die die letzten vier Ziffern einer Kreditkartennummer anzeigen müssen, aber nicht die gesamte Nummer sehen müssen. Die Daten werden im üblichen Format einer Kreditkartennummer angezeigt, XXXX-XXXX-XXXX-1234. | ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'partial(0,"XXXX-XXXX-XXXX-",4)') |
| Nur der erste Buchstabe und das nachfolgende Domänensuffix sind nicht maskiert; z. B. "aXXX@XXXXXXX.com" | ALTER TABLE [Customer] ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()') |
|
| Number | Dieses Maskierungsformat sollte für numerische Spalten verwendet werden. Sie zeigt anstelle des tatsächlichen Werts eine Zufallszahl für den maskierten Wert an. Bei jeder Abfrage wird eine andere Zahl angezeigt. | ALTER TABLE [Customer] ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)') |
| Benutzerdefinierte Zeichenfolge | Mit dieser Option kann Text mit einem beliebigen Wert maskiert werden, und eine benutzerdefinierte Anzahl von Zeichen kann am Anfang oder Ende des maskierten Werts angezeigt werden. Wenn die Länge des maskierten Werts kleiner oder gleich der Zeichenanzahl ist, die in der Maskierungsregel festgelegt ist, werden nur maskierte Zeichen angezeigt. | ALTER TABLE [Customer] ALTER COLUMN [PhoneNumber] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') |
Damit Benutzer nicht maskierte Daten aus den Spalten abrufen können, für die eine Maskierung definiert ist, müssen Sie explizit die Berechtigung UNMASK erteilen.
Hinweis
Es ist möglich, maskierte Daten mithilfe von Rückschlüssen basierend auf den Ergebnissen zu identifizieren. Wenn Sie die Datenmaske verwenden, sollten Sie auch die Möglichkeit des Benutzers einschränken, ungeplante Abfragen auszuführen.
Aus diesem Grund wird dringend empfohlen, dynamische Datenmasken mit anderen Sicherheitsfeatures wie Überwachung, Verschlüsselung, Zeilenebenensicherheit zu verwenden, um vertrauliche Daten besser zu schützen.
Anwendungsfall
Die Datenformatierung ist ein einfaches und einfaches Feature und eignet sich ideal für viele Szenarien, darunter:
Maskieren von Daten aus Anwendungen, die keinen Direktzugriff auf die Datenbank haben.
Einschränkung von privaten Informationen für eine Gruppe von Benutzer*innen.
Bereitstellen von maskierten Daten für externe Anbieter, wenn Sie vertrauliche Informationen schützen und gleichzeitig die Beziehungen zwischen den Elementen in den Daten beibehalten müssen.
Exportieren einer Kopie Ihrer Produktionsdatenbank zu Entwicklungszwecken in eine untergeordnete Umgebung mit einem Benutzer, der nicht über die Berechtigung
UNMASKverfügt. Der Export der Daten erfolgt in einem maskierten Format.
Importieren und Exportieren von Daten.
Das Kopieren von Daten aus einer maskierten Spalte in eine andere Tabelle mit SELECT INTO oder INSERT INTO führt zu maskierten Daten in der Zieltabelle.
Wenn ein Benutzer ohne UNMASK Berechtigung SQL Server-Import und -Export ausführt, enthält die exportierte Datendatei maskierte Daten, und die importierte Datenbank enthält inaktiv maskierte Daten.
Weitere Informationen zur Funktionsweise der dynamischen Datenformatierung finden Sie unter Dynamische Datenmaskierung.