Dynamische DatenmaskierungDynamic Data Masking

Gilt für: JaSQL Server JaAzure SQL-Datenbank JaAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Dynamische Datenmaskierung

Die dynamische Datenmaskierung (DDM) beschränkt die Offenlegung vertraulicher Daten, indem sie für nicht berechtigte Benutzer maskiert werden.Dynamic data masking (DDM) limits sensitive data exposure by masking it to non-privileged users. Sie kann den Entwurf und die Sicherheitscodierung in Ihrer Anwendung erheblich vereinfachen.It can be used to greatly simplify the design and coding of security in your application.

Mit der dynamischen Datenmaskierung können Sie unbefugten Zugriff auf sensible Daten verhindern, indem Kunden festlegen können, wie viele sensible Daten mit minimaler Auswirkung auf die Anwendungsschicht offengelegt werden.Dynamic data masking helps prevent unauthorized access to sensitive data by enabling customers to specify how much sensitive data to reveal with minimal impact on the application layer. DDM kann für designierte Datenbankfelder zum Ausblenden sensibler Daten in den Resultsets von Abfragen konfiguriert werden.DDM can be configured on designated database fields to hide sensitive data in the result sets of queries. Mit der dynamischen Datenmaskierung (DDM) werden Daten in der Datenbank nicht geändert.With DDM the data in the database is not changed. Die dynamische Datenmaskierung ist für vorhandene Anwendungen einfach zu verwenden, da Maskierungsregeln auf die Abfrageergebnisse angewendet werden.Dynamic data masking is easy to use with existing applications, since masking rules are applied in the query results. Viele Clientanwendungen können sensible Daten maskieren, ohne vorhandene Abfragen zu ändern.Many applications can mask sensitive data without modifying existing queries.

  • Eine zentrale Datenmaskierungsrichtlinie wirkt sich direkt auf vertrauliche Felder in der Datenbank aus.A central data masking policy acts directly on sensitive fields in the database.
  • Festlegen berechtigter Benutzer oder Rollen, die Zugriff auf vertrauliche Daten haben.Designate privileged users or roles that do have access to the sensitive data.
  • DDM umfasst Funktionen zur vollständigen und partiellen Maskierung sowie eine willkürliche Maske für numerische Daten.DDM features full masking and partial masking functions, and a random mask for numeric data.
  • Einfache Transact-SQLTransact-SQL-Befehle dienen zum Definieren und Verwalten von Masken.Simple Transact-SQLTransact-SQL commands define and manage masks.

Ein Supportmitarbeiter in einem Call Center kann z. B. Anrufer anhand mehrerer Ziffern seiner Sozialversicherungs- oder Kreditkartennummer identifizieren.As an example, a call center support person may identify callers by several digits of their social security number or credit card number. Supportmitarbeiter sollten US-Sozialversicherungsnummern oder Kreditkartennummern nicht vollständig einsehen können.Social security numbers or credit card numbers should not be fully exposed to the support person. Es kann eine Maskierungsregel definiert werden, die alle außer den letzten vier Ziffern einer Sozialversicherungsnummer oder Kreditkartennummer im Resultset einer beliebigen Abfrage maskiert.A masking rule can be defined that masks all but the last four digits of any social security number or credit card number in the result set of any query. Als weiteres Beispiel kann ein Entwickler Produktionsumgebungen zu Problembehandlungszwecken abfragen, ohne gegen Genehmigungsregeln zu verstoßen, indem er die entsprechende Datenmaske zum Schützen von personenbezogenen Daten verwendet.For another example, by using the appropriate data mask to protect personally identifiable information (PII) data, a developer can query production environments for troubleshooting purposes without violating compliance regulations.

Der Zweck der dynamischen Datenmaskierung besteht darin, die Offenlegung sensibler Daten zu beschränken, die Benutzer an der Anzeige der Daten hindert, die keinen Zugriff auf diese erhalten sollten.The purpose of dynamic data masking is to limit exposure of sensitive data, preventing users who should not have access to the data from viewing it. Die dynamische Datenmaskierung ist nicht darauf ausgerichtet, Datenbankbenutzer daran zu hindern, eine direkte Verbindung zur Datenbank herzustellen und umfassende Abfragen auszuführen, die Teile der vertraulichen Daten verfügbar machen.Dynamic data masking does not aim to prevent database users from connecting directly to the database and running exhaustive queries that expose pieces of the sensitive data. Die dynamische Datenmaskierung ist eine Ergänzung zu anderen SQL ServerSQL Server-Sicherheitsfeatures (Überwachung, Verschlüsselung, Sicherheit auf Zeilenebene usw.), und es wird dringend empfohlen, dieses Feature in Verbindung mit diesen anderen Features zu verwenden, um die sensiblen Daten in der Datenbank besser zu schützen.Dynamic data masking is complementary to other SQL ServerSQL Server security features (auditing, encryption, row level security...) and it is highly recommended to use this feature in conjunction with them in addition in order to better protect the sensitive data in the database.

Die dynamische Datenmaskierung steht in SQL Server 2016 (13.x)SQL Server 2016 (13.x) und Azure SQL-DatenbankAzure SQL Databasezur Verfügung und wird mithilfe von Transact-SQLTransact-SQL -Befehlen konfiguriert.Dynamic data masking is available in SQL Server 2016 (13.x)SQL Server 2016 (13.x) and Azure SQL-DatenbankAzure SQL Database, and is configured by using Transact-SQLTransact-SQL commands. Weitere Informationen zum Konfigurieren der dynamischen Datenmaskierung über das Azure-Portal finden Sie unter Erste Schritte mit der dynamischen Datenmaskierung für SQL-Datenbank (Azure-Portal).For more information about configuring dynamic data masking by using the Azure portal, see Get started with SQL Database Dynamic Data Masking (Azure portal).

Definieren einer dynamischen DatenmaskeDefining a Dynamic Data Mask

Eine Maskierungsregel kann für eine Spalte in einer Tabelle definiert werden, um die Daten in dieser Spalte zu verschleiern.A masking rule may be defined on a column in a table, in order to obfuscate the data in that column. Es stehen vier Arten von Masken zur Verfügung.Four types of masks are available.

FunktionFunction und BeschreibungDescription BeispieleExamples
DefaultDefault Die vollständige Maskierung gemäß der Datentypen der festgelegten Felder.Full masking according to the data types of the designated fields.

Verwenden Sie XXXX oder weniger X-Platzhalter für Zeichenfolge-Datentypen, wenn die Größe des Felds weniger als vier Zeichen umfasst (char, nchar, varchar, nvarchar, text, ntext).For string data types, use XXXX or fewer Xs if the size of the field is less than 4 characters (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).For numeric data types use a zero value (bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real).

Verwenden Sie für die Datentypen für Datum und Uhrzeit 01.01.1900 00:00:00.0000000 (date, datetime2, datetime, datetimeoffset, smalldatetime, time).For date and time data types use 01.01.1900 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).For binary data types use a single byte of ASCII value 0 (binary, varbinary, image).
Beispielsyntax der Spaltendefinition: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULLExample column definition syntax: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

Beispiel für die alter-Syntax: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')Example of alter syntax: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
EmailEmail Eine Maskierungsmethode, die den ersten Buchstaben einer E-Mail-Adresse und das konstante Suffix „.com“ in Form einer E-Mail-Adresse verfügbar macht.Masking method that exposes the first letter of an email address and the constant suffix ".com", in the form of an email address. aXXX@XXXX.com.aXXX@XXXX.com. Beispielsyntax der Definition: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULLExample definition syntax: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

Beispiel für die alter-Syntax: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')Example of alter syntax: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Zufall (Random)Random 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.A random masking function for use on any numeric type to mask the original value with a random value within a specified range. Beispielsyntax der Definition: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')Example definition syntax: 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)')Example of alter syntax: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Benutzerdefinierte ZeichenfolgeCustom String Eine Maskierungsmethode, die den ersten und letzten Buchstaben verfügbar macht und in der Mitte eine benutzerdefinierte Zeichenfolge zur Auffüllung hinzufügt.Masking method that exposes the first and last letters and adds a custom padding string in the middle. prefix,[padding],suffix

Hinweis: Wenn der ursprüngliche Wert zu kurz ist, um die gesamte Maske zu vervollständigen, wird ein Teil des Präfixes oder Suffixes nicht verfügbar gemacht.Note: If the original value is too short to complete the entire mask, part of the prefix or suffix will not be exposed.
Beispielsyntax der Definition: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULLExample definition syntax: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

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

Zusätzliche Beispiele:Additional examples:

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

ALTER COLUMN [Social Security Number] ADD MASKED WITH (FUNCTION = 'partial(0,"XXX-XX-",4)')

BerechtigungenPermissions

Sie benötigen keine speziellen Berechtigungen zum Erstellen einer Tabelle mit einer dynamischen Datenmaske. Lediglich die Standardschemaberechtigungen CREATE TABLE und ALTER sind erforderlich.You do not need any special permission to create a table with a dynamic data mask, only the standard CREATE TABLE and ALTER on schema permissions.

Das Hinzufügen, Ersetzen oder Entfernen der Maske einer Spalte erfordert die Berechtigungen ALTER ANY MASK und ALTER für die Tabelle.Adding, replacing, or removing the mask of a column, requires the ALTER ANY MASK permission and ALTER permission on the table. Es empfiehlt sich, die Berechtigung ALTER ANY MASK einem Sicherheitsbeauftragten zu erteilen.It is appropriate to grant ALTER ANY MASK to a security officer.

Benutzer mit der Berechtigung SELECT für eine Tabelle können die Tabellendaten anzeigen.Users with SELECT permission on a table can view the table data. Spalten, die als maskiert definiert sind, zeigen die maskierten Daten an.Columns that are defined as masked, will display the masked data. Erteilen Sie die Berechtigung UNMASK einem Benutzer, damit dieser Daten ohne Maskierung aus den Spalten abrufen kann, für die eine Maskierung definiert ist.Grant the UNMASK permission to a user to enable them to retrieve unmasked data from the columns for which masking is defined.

Die Berechtigung CONTROL für eine Datenbank umfasst sowohl die Berechtigung ALTER ANY MASKE als auch UNMASK .The CONTROL permission on the database includes both the ALTER ANY MASK and UNMASK permission.

Bewährte Methoden und EinsatzbereicheBest Practices and Common Use Cases

  • Das Erstellen einer Maske für eine Spalte verhindert keine Aktualisierungen für diese Spalte.Creating a mask on a column does not prevent updates to that column. Obwohl die Benutzer beim Abfragen der maskierten Spalte auch maskierte Daten erhalten, können dieselben Benutzer die Daten aktualisieren, wenn sie über die entsprechenden Schreibberechtigungen verfügen.So although users receive masked data when querying the masked column, the same users can update the data if they have write permissions. Eine ordnungsgemäße Zugriffssteuerungsrichtlinie sollte weiterhin verwendet werden, um Aktualisierungsberechtigungen einzuschränken.A proper access control policy should still be used to limit update permissions.

  • Die Verwendung von SELECT INTO oder INSERT INTO zum Kopieren von Daten aus einer maskierten Spalte in eine andere Tabelle führt zu maskierten Daten in der Zieltabelle.Using SELECT INTO or INSERT INTO to copy data from a masked column into another table results in masked data in the target table.

  • Die dynamische Datenmaskierung wird beim Ausführen von Import- und Exportvorgängen in SQL ServerSQL Server angewendet.Dynamic Data Masking is applied when running SQL ServerSQL Server Import and Export. Eine Datenbank mit maskierten Spalten führt zu einer exportierten Datendatei mit maskierten Daten (vorausgesetzt, sie wird durch einen Benutzer ohne UNMASK-Berechtigungen exportiert), und die importierte Datenbank enthält statisch maskierte Daten.A database containing masked columns will result in an exported data file with masked data (assuming it is exported by a user without UNMASK privileges), and the imported database will contain statically masked data.

Abfragen von maskierten SpaltenQuerying for Masked Columns

Verwenden Sie die sys.masked_columns -Ansicht zum Abfragen von Tabellenspalten, auf die eine Maskierungsfunktion angewendet wird.Use the sys.masked_columns view to query for table-columns that have a masking function applied to them. Diese Ansicht erbt von der sys.columns -Ansicht.This view inherits from the sys.columns view. Sie gibt alle Spalten in der sys.columns -Ansicht sowie die Spalten is_masked und masking_function zurück, wobei angegeben wird, ob die Spalte maskiert ist. Ist dies der Fall, gibt die Ansicht die definierte Maskierungsfunktion an.It returns all columns in the sys.columns view, plus the is_masked and masking_function columns, indicating if the column is masked, and if so, what masking function is defined. Diese Ansicht zeigt nur die Spalten an, auf die eine Maskierungsfunktion angewendet wird.This view only shows the columns on which there is a masking function applied.

SELECT c.name, tbl.name as table_name, c.is_masked, c.masking_function  
FROM sys.masked_columns AS c  
JOIN sys.tables AS tbl   
    ON c.[object_id] = tbl.[object_id]  
WHERE is_masked = 1;  

EinschränkungenLimitations and Restrictions

Eine Maskierungsregel kann für die folgenden Spaltentypen nicht definiert werden:A masking rule cannot be defined for the following column types:

  • Verschlüsselte Spalten (Always Encrypted)Encrypted columns (Always Encrypted)

  • FILESTREAMFILESTREAM

  • COLUMN_SET oder eine Sparsespalte, die Teil eines Spaltensatzes ist.COLUMN_SET or a sparse column that is part of a column set.

  • Eine Maske kann nicht für eine berechnete Spalte konfiguriert werden, aber wenn die berechnete Spalte von einer Spalte mit MASKE abhängig ist, gibt die berechnete Spalte maskierte Daten zurück.A mask cannot be configured on a computed column, but if the computed column depends on a column with a MASK, then the computed column will return masked data.

  • Eine Spalte mit Datenmaskierung darf kein Schlüssel für einen Volltextindex sein.A column with data masking cannot be a key for a FULLTEXT index.

Für Benutzer ohne die UNMASK -Berechtigung funktionieren die als veraltet markierten Anweisungen READTEXT, UPDATETEXTund WRITETEXT nicht ordnungsgemäß für eine Spalte, die für die dynamische Datenmaskierung konfiguriert ist.For users without the UNMASK permission, the deprecated READTEXT, UPDATETEXT, and WRITETEXT statements do not function properly on a column configured for Dynamic Data Masking.

Das Hinzufügen einer dynamischen Datenmaske wird als Schemaänderung für die zugrunde liegende Tabelle implementiert und kann deshalb nicht für eine Spalte mit Abhängigkeiten ausgeführt werden.Adding a dynamic data mask is implemented as a schema change on the underlying table, and therefore cannot be performed on a column with dependencies. Um diese Einschränkung zu umgehen, können Sie zunächst die Abhängigkeiten entfernen und anschließend die dynamische Datenmaske hinzufügen. Danach erstellen Sie die Abhängigkeiten erneut.To work around this restriction, you can first remove the dependency, then add the dynamic data mask and then re-create the dependency. Wenn z.B. die Abhängigkeit dadurch entsteht, dass ein Indexes von dieser Spalte abhängt, können Sie den Index löschen und anschließend die Maske hinzufügen und dann den abhängigen Index wieder herstellen.For example, if the dependency is due to an index dependent on that column, you can drop the index, then add the mask, and then re-create the dependent index.

Sicherheitshinweis: Umgehen der Maskierung mithilfe von Rückschluss- oder Brute-Force-VerfahrenSecurity Note: Bypassing masking using inference or brute-force techniques

Die dynamische Datenmaskierung dient zur Vereinfachung der Anwendungsentwicklung durch die Einschränkung der Gefährdung der Daten in einer Reihe von vordefinierten Abfragen, die von der Anwendung verwendet werden.Dynamic Data Masking is designed to simplify application development by limiting data exposure in a set of pre-defined queries used by the application. Die dynamische Datenmaskierung kann auch dazu dienen, eine versehentliche Offenlegung sensibler Daten beim direkten Zugriff auf eine Produktionsdatenbank zu verhindern. Es ist wichtig zu beachten, dass nicht berechtigte Benutzer mit Berechtigungen für Ad-hoc-Abfragen entsprechende Verfahren anwenden können, um Zugriff auf die eigentlichen Daten zu erhalten.While Dynamic Data Masking can also be useful to prevent accidental exposure of sensitive data when accessing a production database directly, it is important to note that unprivileged users with ad-hoc query permissions can apply techniques to gain access to the actual data. Wenn es erforderlich ist, diesen Ad-hoc-Zugriff zu gewähren, sollten alle Datenbankaktivitäten überwacht werden, um dieses Szenario zu vermeiden.If there is a need to grant such ad-hoc access, Auditing should be used to monitor all database activity and mitigate this scenario.

Betrachten Sie dazu als Beispiel einen Datenbankprinzipal, der über ausreichende Berechtigungen zum Ausführen von Ad-hoc-Abfragen für die Datenbank verfügt und versucht, die zugrunde liegenden Daten zu „erraten“ und letztlich die tatsächlichen Werte abzuleiten.As an example, consider a database principal that has sufficient privileges to run ad-hoc queries on the database, and tries to 'guess' the underlying data and ultimately infer the actual values. Nehmen Sie an, es liegt eine definierte Maske für die [Employee].[Salary] -Spalte vor, und dieser Benutzer stellt eine direkte Verbindung zur Datenbank her und beginnt mit dem Raten von Werten, wodurch letztendlich der [Salary] -Wert einer Reihe von Mitarbeitern gefolgert wird:Assume that we have a mask defined on the [Employee].[Salary] column, and this user connects directly to the database and starts guessing values, eventually inferring the [Salary] value of a set of Employees:

SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;
IDId NameName GehaltSalary
6254362543 Jana HoffmannJane Doe 00
9124591245 Johan LorenzJohn Smith 00

Dies zeigt, dass die dynamische Datenmaskierung nicht als isoliertes Measure verwendet werden sollte, um vertrauliche Daten nicht vollständig vor Benutzern zu schützen, die Ad-hoc-Abfragen für die Datenbank ausführen.This demonstrates that Dynamic Data Masking should not be used as an isolated measure to fully secure sensitive data from users running ad-hoc queries on the database. Sie ist dazu geeignet, die versehentliche Offenlegung von Daten zu vermeiden, aber sie schützt nicht vor der bösen Absicht, die zugrunde liegenden Daten abzuleiten.It is appropriate for preventing accidental sensitive data exposure, but will not protect against malicious intent to infer the underlying data.

Es ist wichtig, die Berechtigungen für die Datenbank ordnungsgemäß zu verwalten und stets das Prinzip der minimal erforderlichen Berechtigungen zu verfolgen.It is important to properly manage the permissions on the database, and to always follow the minimal required permissions principle. Beachten Sie auch, dass die Überwachung aktiviert ist, um alle Aktivitäten zu verfolgen, die für die Datenbank ausgeführt werdenAlso, remember to have Auditing enabled to track all activities taking place on the database.

BeispieleExamples

Erstellen einer dynamischen DatenmaskeCreating a Dynamic Data Mask

Mit dem folgenden Beispiel wird eine Tabelle mit drei verschiedenen Typen von dynamischen Datenmasken erstellt.The following example creates a table with three different types of dynamic data masks. Das Beispiel füllt die Tabelle und wählt sie aus, um das Ergebnis anzuzeigen.The example populates the table, and selects to show the result.

CREATE TABLE Membership  
  (MemberID int IDENTITY PRIMARY KEY,  
   FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') NULL,  
   LastName varchar(100) NOT NULL,  
   Phone varchar(12) MASKED WITH (FUNCTION = 'default()') NULL,  
   Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL);  
  
INSERT Membership (FirstName, LastName, Phone, Email) VALUES   
('Roberto', 'Tamburello', '555.123.4567', 'RTamburello@contoso.com'),  
('Janice', 'Galvin', '555.123.4568', 'JGalvin@contoso.com.co'),  
('Zheng', 'Mu', '555.123.4569', 'ZMu@contoso.net');  
SELECT * FROM Membership;  

Es wird ein neuer Benutzer erstellt und diesem die Berechtigung SELECT für die Tabelle erteilt.A new user is created and granted SELECT permission on the table. Abfragen werden für durch die TestUser -Ansicht maskierte Daten ausgeführt.Queries executed as the TestUser view masked data.

CREATE USER TestUser WITHOUT LOGIN;  
GRANT SELECT ON Membership TO TestUser;  
  
EXECUTE AS USER = 'TestUser';  
SELECT * FROM Membership;  
REVERT;  

Das Ergebnis veranschaulicht die Masken durch Ändern der Daten vonThe result demonstrates the masks by changing the data from

1 Roberto Tamburello 555.123.4567 RTamburello@contoso.com

intointo

1 RXXXXXXX Tamburello xxxx RXXX@XXXX.com

Hinzufügen oder Bearbeiten einer Maske für eine vorhandene SpalteAdding or Editing a Mask on an Existing Column

Verwenden Sie die ALTER TABLE -Anweisung zum Hinzufügen einer Maske zu einer vorhandenen Spalte in der Tabelle oder zum Bearbeiten der Maske für die betreffende Spalte.Use the ALTER TABLE statement to add a mask to an existing column in the table, or to edit the mask on that column.
Im folgenden Beispiel wird eine Maskierungsfunktion zur Spalte LastName hinzugefügt:The following example adds a masking function to th LastName column:

ALTER TABLE Membership  
ALTER COLUMN LastName ADD MASKED WITH (FUNCTION = 'partial(2,"XXX",0)');  

Im folgenden Beispiel wird eine Maskierungsfunktion für die Spalte LastName geändert:The following example changes a masking function on the LastName column:

ALTER TABLE Membership  
ALTER COLUMN LastName varchar(100) MASKED WITH (FUNCTION = 'default()');  

Erteilen von Berechtigungen zum Anzeigen von Daten ohne MaskierungGranting Permissions to View Unmasked Data

Das Erteilen der UNMASK -Berechtigung ermöglicht dem TestUser das Anzeigen der Daten ohne Maskierung.Granting the UNMASK permission allows TestUser to see the data unmasked.

GRANT UNMASK TO TestUser;  
EXECUTE AS USER = 'TestUser';  
SELECT * FROM Membership;  
REVERT;   
  
-- Removing the UNMASK permission  
REVOKE UNMASK TO TestUser;  

Löschen einer dynamischen DatenmaskeDropping a Dynamic Data Mask

Die folgende Anweisung löscht die Maske für die Spalte LastName , die im vorherigen Beispiel erstellt wurde:The following statement drops the mask on the LastName column created in the previous example:

ALTER TABLE Membership   
ALTER COLUMN LastName DROP MASKED;  

Weitere InformationenSee Also

CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
column_definition (Transact-SQL) column_definition (Transact-SQL)
sys.masked_columns (Transact-SQL) sys.masked_columns (Transact-SQL)
Erste Schritte mit der dynamischen Datenmaskierung für die SQL-Datenbank (Azure-Portal)Get started with SQL Database Dynamic Data Masking (Azure portal)