sys.masked_columns (Transact-SQL)

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed Instance

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 から継承されたさらに多くの列を返します。 各種 その他の列定義については、「 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)