sys.masked_columns (Transact-SQL)

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed Instance

Use la vista sys.masked_columns para consultar las columnas de tabla que tienen aplicada una función de enmascaramiento dinámico de datos. Esta vista se hereda de la vista sys.columns . Devuelve todas las columnas de la vista sys.columns , junto con las columnas is_masked y masking_function . Además, indica si estas están enmascaradas y, en caso afirmativo, qué función de enmascaramiento se ha definido. Esta vista solo muestra las columnas en las que se ha aplicado la función de enmascaramiento.

Nombre de la columna Tipo de datos Descripción
object_id int Identificador del objeto al que pertenece esta columna.
name sysname Nombre de la columna. Es único en el objeto.
column_id int Identificador de la columna. Es único en el objeto.

Los Id. de columna no tienen que ser secuenciales.
sys.masked_columns devuelve muchas más columnas heredadas de sys.columns. varias Consulte sys.columns (Transact-SQL) para obtener más definiciones de columna.
is_masked bit Indica si la columna está enmascarada. 1 indica enmascarado.
masking_function nvarchar(4000) Función de enmascaramiento de la columna.
generated_always_type tinyint Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, SQL Database 7, 8, 9, 10 se aplica únicamente a SQL Database.

Identifica cuándo se genera el valor de columna (siempre será 0 para las columnas de las tablas del sistema):

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

Para obtener más información, consulte Tablas temporales (bases de datos relacionales).

Permisos

Esta vista devuelve información sobre las tablas en las que el usuario tiene algún tipo de permiso en la tabla o si el usuario tiene el permiso VIEW ANY DEFINITION.

Ejemplo

La consulta siguiente combina sys.masked_columns a sys.tables para devolver información sobre todas las columnas enmascaradas.

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;  

Consulte también

Enmascaramiento de datos dinámicos
sys.columns (Transact-SQL)