Dynamische Datenmaskierung in Fabric Data Warehouse

Gilt für:✅ SQL-Analyseendpunkt und Warehouse in Microsoft Fabric

Die dynamische Datenmaskierung ist eine Datenschutzfunktion, die die Offenlegung sensibler Daten einschränkt, indem sie diese Daten für nicht privilegierte Benutzer maskiert. Sie vereinfacht das Entwerfen und Codieren von Sicherheit in Ihrer Anwendung.

Dynamische Datenmaskierung trägt dazu bei, unbefugten Zugriff auf vertrauliche Daten zu verhindern. Administratoren geben an, wie viel vertrauliche Daten angezeigt werden sollen, mit minimaler Auswirkung auf die Anwendungsebene. Sie können die dynamische Datenmaske für bestimmte Datenbankfelder konfigurieren, um vertrauliche Daten in den Resultsets von Abfragen auszublenden. Die Daten in der Datenbank werden nicht geändert, sodass vorhandene Anwendungen ohne Änderung weiterhin funktionieren können, da Maskierungsregeln auf Abfrageergebnisse angewendet werden. Viele Clientanwendungen können sensible Daten maskieren, ohne vorhandene Abfragen zu ändern.

Die dynamische Datenmaskierung bietet folgende Funktionen:

  • Eine zentrale Datenmaskierungsrichtlinie wirkt sich direkt auf vertrauliche Felder in der Datenbank aus.
  • Privilegierte Benutzer oder Rollen können für den Zugriff auf die vertraulichen Daten festgelegt werden.
  • Sie verfügen über Maskierungsoptionen, aus denen Sie auswählen können: Funktionen für vollständige Maskierung und teilweise Maskierung sowie eine zufällige Maske für numerische Daten.
  • Zum Definieren und Verwalten von Masken werden einfache Transact-SQL-Befehle verwendet.

Die dynamische Datenmaske verhindert nicht, dass Datenbankbenutzer eine direkte Verbindung mit der Datenbank herstellen und erschöpfende Abfragen ausführen, die Teile der vertraulichen Daten verfügbar machen. Verwenden Sie dynamische Datenmasken zusammen mit anderen Fabric Sicherheitsfeatures wie Sicherheit auf Spaltenebene und Sicherheit auf Zeilenebene, um vertrauliche Daten in der Datenbank zu schützen.

Funktionen für die dynamische Datenmaskierung

Definieren Sie eine Maskierungsregel für eine Spalte in einer Tabelle, um die Daten in dieser Spalte zu verschleiern. Vier Arten von Masken sind verfügbar.

Funktion Beschreibung Beispiele
Standard Vollständige Maskierung entsprechend den Datentypen der angegebenen Felder.

Für String-Datentypen verwenden Sie XXXX (oder weniger) wenn die Größe des Feldes weniger als 4 Zeichen beträgt (char, nchar, varchar, nvarchar, text, ntext).

Verwenden Sie für numerische Datentypen den Wert 0 (null) (bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real).

Für Datums- und Zeitdatentypen verwenden Sie 1900-01-01 00:00:00.0000000 (date, datetime2, datetime, datetimeoffset, smalldatetime, time).

Verwenden Sie für binäre Datentypen ein Einzelbyte des ASCII-Werts 0 (binary, varbinary, image).
Beispielsyntax der Spaltendefinition: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

Beispiel für die alternative Syntax: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
E‑Mail Eine Maskierungsmethode, die den ersten Buchstaben einer E-Mail-Adresse und das konstante Suffix „.com“ in Form einer E-Mail-Adresse verfügbar macht. aXXX@XXXX.com. Beispielsyntax der Definition: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

Beispiel für die alter-Syntax: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Zufällig Eine zufällige Maskierungsfunktion, die für alle numerischen Typen verwendet werden kann, um den ursprünglichen Wert mit einem zufälligen Wert innerhalb eines bestimmten Bereichs zu maskieren. Beispielsyntax der Definition: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

Beispiel für die alter-Syntax: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Benutzerdefinierte Zeichenfolge Maskierungsmethode, die den ersten und letzten Buchstaben offenlegt und in der Mitte eine benutzerdefinierte Auffüllzeichenfolge hinzufügt. prefix,[padding],suffix

Wenn der ursprüngliche Wert zu kurz ist, um die gesamte Maske zu vervollständigen, wird ein Teil des Präfixes oder Suffixes nicht angezeigt.
Beispielsyntax der Definition: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

Beispiel für die alternative Syntax: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Dadurch wird eine Telefonnummer wie 555.123.1234 zu 5XXXXXXX umgewandelt.

Weiteres Beispiel:

ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)')

Dadurch wird eine Telefonnummer wie 555.123.1234 zu 555.1XXXXXXX umgewandelt.

Weitere Beispiele finden Sie unter Implementieren der dynamischen Datenmaskierung in Fabric Data Warehouse.

Berechtigungen für die dynamische Datenmaskierung

In Fabric Data Warehouse sehen Benutzer maskierte Daten, wenn sie maskierte Spalten abfragen, wenn sie keine Mitglieder der Rollen "Administrator", "Mitglied" oder "Mitwirkender" im Arbeitsbereich sind oder keine erhöhten Berechtigungen für das Warehouse besitzen.

In der folgenden Tabelle sind die Berechtigungen aufgeführt, die für jeden dynamischen Datenformatierungsvorgang erforderlich sind:

Operation Erforderliche Berechtigung
Erstellen einer Tabelle mit maskierten Spalten CREATE TABLE und ALTER im Schema
Hinzufügen, Ersetzen oder Entfernen einer Maske in einer Spalte ALTER ANY MASK und ALTER auf der Tabelle
Maskierte Daten anzeigen SELECT auf dem Tisch
Unmaskete Daten anzeigen UNMASK auf der Spalte oder CONTROL in der Datenbank

Erteilen sie ALTER ANY MASK einem Sicherheitsbeauftragten. Gewähren Sie UNMASK einem Benutzer, dass dieser Benutzer ungemaskete Daten aus maskierten Spalten abrufen kann.

Die CONTROL-Berechtigung für die Datenbank umfasst sowohl ALTER ANY MASK als auch UNMASK, sodass Benutzer, die über CONTROL verfügen, unmaskierte Daten anzeigen können. Administrative Benutzer oder Rollen wie "Administrator", "Mitglied" oder "Mitwirkender" verfügen CONTROL standardmäßig über die Berechtigung für die Datenbank und können unmaskete Daten standardmäßig anzeigen. Erhöhte Berechtigungen für das Warehouse umfassen die CONTROL-Berechtigung.

Sicherheitsüberlegung: Umgehen der Maskierung mithilfe von Rückschlüssen oder Brute-Force-Techniken

Die dynamische Datenformatierung vereinfacht die Anwendungsentwicklung, indem die Datenexposition in einer Reihe vordefinierter Abfragen beschränkt wird, die von der Anwendung verwendet werden. Obwohl die dynamische Datenmaske auch dazu beitragen kann, die versehentliche Gefährdung vertraulicher Daten beim direkten Zugriff auf Daten zu verhindern, können nicht privilegierte Benutzer mit Abfrageberechtigungen Techniken verwenden, um die tatsächlichen Daten abzuleiten.

Beispielsweise kann ein Benutzer, der über die Berechtigung zum Ausführen von Abfragen im Warehouse verfügt, Werte erraten, um maskierte Daten abzuleiten. Gehen Sie davon aus, dass Sie eine Maske für die [Employee].[Salary] Spalte definieren. Der Benutzer stellt eine direkte Verbindung mit der Datenbank her und beginnt mit dem Erraten von Werten und leitet schließlich den [Salary] Wert in der Employees Tabelle ab. Sie führen eine Bereichsabfrage für die Employees Tabelle aus:

SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;

Die Abfrage gibt Folgendes zurück:

ID Name Gehalt
62543 Jane Doe 0
91245 John Smith 0

Obwohl die Salary Spalte maskiert ist (die Werte werden als 0angezeigt), bestätigt die WHERE Klausel, dass beide Mitarbeiter ein Gehalt zwischen 99.999 $ und 100.001 $ haben. Verwenden Sie die dynamische Datenmaske nicht allein, um vertrauliche Daten von Benutzern mit Abfragezugriff auf den Warehouse- oder SQL-Analyseendpunkt vollständig zu schützen. Dynamische Datenmasken sind geeignet, um versehentliche vertrauliche Datenexposition zu verhindern, aber sie schützt nicht vor böswilligen Absichten, die zugrunde liegenden Daten abzuleiten.

Verwalten Sie die Sicherheit auf Objektebene mit SQL granularen Berechtigungen ordnungsgemäß, und befolgen Sie immer das Prinzip der geringsten Berechtigungen.

Nächster Schritt