sys.masked_columns (Transact-SQL)
适用于:SQL Server 2016(13.x)及更高版本Azure SQL 数据库Azure SQL 托管实例
使用sys.masked_columns视图查询应用了动态数据掩码函数的表列。 该视图继承自 sys.columns 视图。 该视图会返回 sys.columns 视图中的所有列,以及 is_masked 和 masking_function 列,表明该列是否被屏蔽,以及在该列被屏蔽的情况下定义了什么屏蔽函数。 该视图仅显示在其上应用了屏蔽函数的列。
列名称 | 数据类型 | 说明 |
---|---|---|
object_id | int | 此列所属对象的 ID。 |
name | sysname | 列的名称。 在对象中是唯一的。 |
column_id | int | 列的 ID。 在对象中是唯一的。 列 ID 可以不按顺序排列。 |
sys.masked_columns返回从 sys.columns 继承的更多列。 | various | 有关更多列定义,请参阅 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;