sys.masked_columns (Transact-sql SQL)

適用対象: はいSQL Server 2016 (13.x) 以降 はいAzure SQL データベース はいAzure 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 から継承された多くの列を返します。 各種 列の定義の詳細については、「 ()SQL 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テーブル に結合します。

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)