sys.masked_columns (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL Datenbank Azure SQL Managed Instance

Verwenden Sie die sys.masked_columns Ansicht, um Tabellenspalten mit einer dynamischen Datenformatierungsfunktion abzufragen. Diese Ansicht erbt von der sys.columns -Ansicht. 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. Diese Ansicht zeigt nur die Spalten an, auf die eine Maskierungsfunktion angewendet wird.

Spaltenname Datentyp BESCHREIBUNG
object_id int Die ID des Objekts, zu dem diese Spalte gehört.
name sysname Name der Spalte. Ist eindeutig innerhalb des Objekts.
column_id int ID der Spalte. Ist eindeutig innerhalb des Objekts.

Spalten-IDs sind möglicherweise nicht sequenziell.
sys.masked_columns gibt viele weitere Spalten zurück, die von sys.columns geerbt wurden. Verschiedene Weitere Spaltendefinitionen finden Sie unter sys.columns (Transact-SQL).
is_masked bit Gibt an, ob die Spalte maskiert ist. 1 gibt maskiert an.
masking_function nvarchar(4000) Die Maskierungsfunktion für die Spalte.
generated_always_type tinyint Gilt für: SQL Server 2016 (13.x) und höher, SQL-Datenbank. Die Werte 7, 8, 9, 10 gelten nur für SQL-Datenbank.

Gibt an, wann der Spaltenwert generiert wird (für Spalten in Systemtabellen immer 0):

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
7 = AS_TRANSACTION_ID_START
8 = AS_TRANSACTION_ID_END
9 = AS_SEQUENCE_NUMBER_START
10 = AS_SEQUENCE_NUMBER_END

Weitere Informationen finden Sie unter Temporale Tabellen (relationale Datenbanken).

Berechtigungen

Diese Ansicht gibt Informationen zu Tabellen zurück, in denen der Benutzer über eine Art Berechtigung für die Tabelle verfügt oder wenn der Benutzer über die BERECHTIGUNG "VIEW ANY DEFINITION" verfügt.

Beispiel

Die folgende Abfrage verknüpft sys.masked_columns zu sys.tables , um Informationen zu allen maskierten Spalten zurückzugeben.

SELECT tbl.name as table_name, c.name AS column_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;  

Weitere Informationen

Dynamische Datenmaskierung
sys.columns (Transact-SQL)