sys.masked_columns (Transact-SQL)

適用於: SQL Server 2016 (13.x) 和更新版本 Azure SQL DatabaseAzure SQL 受控執行個體

使用sys.masked_columns 檢視來查詢已套用動態資料遮罩函式的資料表資料行。 此檢視繼承自 sys.columns 檢視。 它會傳回 sys.columns 檢視中的所有 資料行,加上 is_masked masking_function 資料行,指出資料行是否已遮罩,如果是,則會定義遮罩函式。 此檢視只會顯示套用遮罩函式的資料行。

資料行名稱 資料類型 描述
object_id int 這個資料行所屬之物件的識別碼。
NAME sysname 資料行的名稱。 在 物件中是唯一的。
column_id int 資料行的識別碼。 在 物件中是唯一的。

資料行識別碼可能不是循序的。
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 Database。 7、8、9、10 僅適用于 SQL Database。

識別何時產生資料行值(系統資料表中的資料行一律為 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)