sys.masked_columns (Transact-SQL)

适用于: SQL Server 2016 (13.x) 及更高版本 Azure SQL 数据库Azure SQL 托管实例

使用 sys.masked_columns 视图查询应用了动态数据掩码函数的表列。 该视图继承自 sys.columns 视图。 该视图会返回 sys.columns 视图中的所有列,以及 is_maskedmasking_function 列,表明该列是否被屏蔽,以及在该列被屏蔽的情况下定义了什么屏蔽函数。 该视图仅显示在其上应用了屏蔽函数的列。

列名称 数据类型 说明
object_id int 此列所属对象的 ID。
name sysname 列的名称。 在对象中是唯一的。
column_id int 列的 ID。 在对象中是唯一的。

列 ID 可以不按顺序排列。
sys.masked_columns 返回从 sys.columns 继承的更多列。 各种 有关更多 列定义,请参阅 sys.columns (Transact-SQL)
is_masked bit 指示列是否被屏蔽。 1 表示已屏蔽。
masking_function nvarchar(4000) 列的掩码函数。
generated_always_type tinyint 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。 7、8、9、10 仅适用于 SQL 数据库。

标识生成列值的时间(系统表中的列将始终为 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

有关详细信息,请参阅时态表(关系数据库)

权限

此视图返回有关用户对表具有某种权限或用户是否具有 VIEW ANY DEFINITION 权限的表的信息。

示例

以下查询 将sys.masked_columns 联接到 sys.tables ,以返回有关所有掩码列的信息。

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;  

另请参阅

动态数据掩码
sys.columns (Transact-SQL)