SQL データの検出と分類

適用対象:SQL Server

データの検出と分類により、データベース内の機密データの検出分類ラベル付け、およびレポートを行う機能が追加されます。 これは、T-SQL または SQL Server Management Studio (SSMS) を使って行うことができます。 最も機密性の高いデータ (ビジネス、財務、医療など) の検出と分類は、組織の情報保護の達成において極めて重要な役割を果たすことができます。 次のような場合にインフラストラクチャとして使用できます。

  • データのプライバシー基準を満たせるようにする。
  • 機密性の高いデータを含むデータベースまたは列へのアクセスを監視する。

Note

データの検出と分類は、SQL Server 2012 以降でサポートされ、SSMS 17.5 以降で使用できます。 Azure SQL Database については、「Azure SQL Database のデータの検出と分類」を参照してください。

概要

データの検出と分類を使用することで、データベースだけでなくデータの保護も目的として、SQL Database、SQL Managed Instance、および Azure Synapse の新しい情報保護パラダイムを形成することができます。 現在、次の機能がサポートされています。

  • 検出および推奨事項 - 分類エンジンはデータベースをスキャンし、機密データが含まれる可能性のある列を識別します。 適切な分類の推奨事項を確認して適用するだけでなく、手動で列を分類するための簡単な方法が提供されます。
  • ラベル付け - 列で永続的に機密分類ラベルにタグを付けることができます。
  • 表示 - データベース分類状態を詳細なレポートに表示することができます。このレポートを印刷したりエクスポートしたりして、コンプライアンスと監査の目的に合わせて使用することができます。

機微な列の検出、分類およびラベル付け

次のセクションでは、データベース内の機密データを含む列の検出、分類、およびラベル付けの手順に加え、データベースの現在の分類状態の表示とレポートのエクスポートの手順について説明します。

分類には、次の 2 つのメタデータ属性が含まれます。

  • ラベル - 列に格納されるデータの機密レベルを定義するために使用される、主な分類属性です。
  • 情報の種類 - 列に格納されるデータの種類をさらに細分化します。

SQL Server データベースを分類するには:

  1. SQL Server Management Studio (SSMS) で、SQL Server に接続します。

  2. SSMS のオブジェクト エクスプローラーで、分類するデータベースを選び、[タスク]>[データ検出と分類]>[データの分類] を選びます。

    [タスク] > [データ検出と分類] > [データの分類] の順に選択されている S S M S オブジェクト エクスプローラーを示すスクリーンショット。

  3. 分類エンジンによって、機密データが含まれる可能性のある列 (列名のみに基づく) についてデータベースがスキャンされ、推奨される列の分類のリストが提供されます。

    • 推奨される列の分類のリストを表示するには、上部にある推奨事項通知ボックス、またはウィンドウの下部にある推奨事項パネルを選びます。

      分類の推奨事項を含む 39 の列が見つかったという通知を示すスクリーンショット。ここをクリックしてご覧ください。

      分類の推奨事項を含む 39 の列があるという通知を示すスクリーンショット (クリックすると表示されます)。

    • 推奨事項のリストを確認します。

      • 特定の列の推奨事項を承諾するには、関連する行の左側の列のチェック ボックスをオンにします。 推奨事項テーブル ヘッダーのチェック ボックスをオンにして、すべての推奨事項 を承諾済みとしてマークすることもできます。

      • ドロップダウン ボックスを使用して、推奨される情報の種類と機密ラベルを変更することもできます。

      推奨事項の一覧を示すスクリーンショット。

    • 選んだ推奨事項を適用するには、[Save selected recommendations]\(選択した推奨事項を保存する\) を選びます。

      [Accept selected recommendations]\(選択した推奨事項を承諾\) ボタンのスクリーンショット。

Note

自動データ検出を実行し、機密性の高い列の推奨事項を提供するレコメンデーション エンジンは、Microsoft Purview 情報保護ポリシー モードを使用すると無効になります。

  1. 分類済みの列を表示するには、ドロップダウンから適切なスキーマと対応するテーブルを選んで、[Load Columns]\(列の読み込み\) を選びます。

    SSMS のデータ分類の分類済みの列の読み込みのスクリーンショット。

  2. 代わりに列を手動で分類することもできます。さらに、推奨事項ベースの分類について、次の操作を実行することもできます。

    • ウィンドウの上部のメニューで、[分類の追加] を選択します。

      [分類の追加] オプションが選択されている上部のメニューを示すスクリーンショット。

    • 開いたコンテキスト ウィンドウで、分類する列の名前、情報の種類、秘密度ラベルを入力します。 スキーマとテーブルは、メイン ページのエントリに基づいて選択されます。

      [分類の追加] コンテキスト ウィンドウを示すスクリーンショット。

    • 特定のテーブルのすべての未分類の列の分類をまとめて追加する場合は、[分類の追加] ページの [列] ドロップダウンで [All Unclassified]\(すべての未分類\) を選びます。

      SSMS のデータ分類でのすべての未分類列の選択のスクリーンショット

  3. 分類を完了し、新しい分類メタデータでデータベース列に永続的にラベル (タグ) を付けるには、ウィンドウの上部のメニューで [保存] ボタンを選びます。

    [保存] オプションが選択されている上部のメニューを示すスクリーンショット。

  4. データベースの分類状態の完全な要約を示すレポートを生成するには、ウィンドウの上部のメニューで [View Report]\(レポートの表示\) を選びます。 (SSMS でレポートを生成することもできます。レポートを生成するデータベースを選び、[タスク]>[データの検出と分類]>[レポートの生成] を選びます。)

    [レポートの表示] オプションが選択されている上部のメニューを示すスクリーンショット。

    SQL データ分類レポートを示すスクリーンショット。

Microsoft Purview 情報保護 ポリシーを使用してデータベースを分類する

Note

Microsoft Information Protection (MIP と略記) は、Microsoft Purview 情報保護として再ブランド化されました。 MIP と Microsoft Purview 情報保護の両方の用語は、このドキュメントでは同じ意味で使用されることが多いですが、どちらも同じ概念を指します。

Microsoft Purview 情報保護 のラベルは、ユーザーが Server 内の機密データを分類するためのシンプルで統一された方法を提供します。 MIP の秘密度ラベルは、Microsoft 365 コンプライアンス センター [Microsoft Purview コンプライアンス ポータル にブランド変更されました] で作成および管理されます。 Microsoft Purview コンプライアンス ポータルで MIP の機密ラベルを作成および公開する方法については、Microsoft Information Protection の秘密度ラベルに関する記事をご覧ください。

これで、Microsoft Purview 情報保護 のラベルを使って SSMS でソース (SQL Server) のデータを分類できるようになり、それを Power BI、Office、その他の Microsoft 製品で使用できます。 これらの秘密度ラベルは、SQL Information Protection ポリシーと同じように、データベースの列レベルで適用されます。

サポートされているデータ ソース内の秘密度ラベル付きのデータに接続する Power BI のデータセットまたはレポートが、それらのラベルを自動的に継承できるようになります。これにより、そのデータは分類されたまま、Power BI に取り込まれたりダウンストリームのアプリケーションにエクスポートされたりします。 SSMS で MIP ポリシーを利用できるため、エンタープライズ全体の分類ソリューションをエンドツーエンドで実現できます。

Microsoft Purview 情報保護ポリシーを構成する手順

  1. SQL Server Management Studio (SSMS) で、SQL Server に接続します。

  2. SSMS のオブジェクト エクスプローラーで、分類するデータベースを選び、[タスク]>[データ検出と分類]>[Set Microsoft Information Protection Policy]\(Microsoft Information Protection ポリシーの設定\) を選びます

    SSMS での Microsoft Information Protection ポリシーの設定のスクリーンショット

  3. Microsoft Information Protection ポリシーを設定するための Microsoft 365 の認証ウィンドウが表示されます。 [サインイン] を選び、有効なユーザー資格情報を入力するか選んで、Microsoft 365 テナントに対する認証を行います。

    Microsoft Information Protection ポリシーを設定するための認証のスクリーンショット

  4. 認証が成功すると、[成功] という状態のポップアップ ウィンドウが表示されます。

    SSMS での Microsoft Information Protection ポリシーの設定が成功したスクリーンショット

  5. 省略可能 - 任意の Microsoft ソブリン クラウドにサインインして Microsoft 365 の認証を行いたい場合は、SSMS から >[ツール]>[オプション]>[Azure サービス]>[Azure クラウド] に移動し、[名前] を適切な Microsoft ソブリン クラウドに変更します。

    SSMS での Azure クラウドの種類の選択のスクリーンショット

  6. SSMS の [オブジェクト エクスプローラー] ウィンドウで、分類するデータベースを右クリックして、[タスク]>[データ検出と分類]>[データの分類] を選びます。 Microsoft 365 テナントで定義されている MIP 秘密度ラベルを使って新しい分類を追加し、それらのラベルを使って SQL Server 内の列を分類できるようになります。

    SSMS での Microsoft Information Protection ポリシーの秘密度ラベルの選択

    データの自動検出と推奨事項は、Microsoft Information Protection ポリシー モードの間は無効になっています。 現在は、SQL Information Protection ポリシー モードでのみ使用できます。

Information Protection ポリシーを既定値または SQL Information Protection にリセットするには、SSMS のオブジェクト エクスプローラーに移動し、データベースを右クリックして、[タスク]>[データ検出と分類]>[情報保護ポリシーを既定値にリセット] を選びます。 これにより、既定値または SQL Information Protection ポリシーが適用され、MIP ラベルの代わりに SQL の秘密度ラベルを使ってデータを分類できます。

SSMS での Information Protection ポリシーのリセットのスクリーンショット

カスタム JSON ファイルから Information Protection ポリシーを有効にするには、SSMS のオブジェクト エクスプローラーに移動し、データベースを右クリックして、[タスク]>[データ検出と分類]>[情報保護ポリシー ファイルの設定] を選びます。

Note

警告アイコンは、現在選択されているポリシー モードとは異なる Information Protection ポリシーを使って、列が以前に分類されたことを示します。 たとえば、現在は Microsoft Information Protection モードであり、列の 1 つが SQL Information Protection ポリシーまたはカスタム ポリシー ファイルからの Information Protection ポリシーを使って以前に分類されていた場合、その列に対して警告アイコンが表示されます。 その列の分類を、現在のポリシー モードで使用できるいずれかの秘密度ラベルに変更するか、そのままにするかを決定できます。 ポリシーが一致しないことを示すデータ分類の警告のスクリーンショット

SSMS で Information Protection ポリシーを管理する

SSMS 18.4 以降を使って、Information Protection ポリシーを管理できます。

  1. SQL Server Management Studio (SSMS) で、SQL Server に接続します。

  2. SSMS のオブジェクト エクスプローラーで、目的のデータベースを右クリックし、[タスク]>[データ検出と分類] を選びます。

    次のメニュー オプションで Information Protection ポリシーを管理できます。

  • [Set Microsoft Information Protection Policy]\(Microsoft Information Protection ポリシーの設定\): Information Protection ポリシーを Microsoft Purview 情報保護ポリシーに設定します。

  • [情報保護ポリシー ファイルの設定]: 選択されている JSON ファイルで定義されているものとして SQL Information Protection ポリシーを使用します。 (既定の情報保護ポリシー ファイルを参照してください)

  • [情報保護ポリシーのエクスポート]: Information Protection ポリシーを JSON ファイルにエクスポートします。

  • [情報保護ポリシーのリセット]: Information Protection ポリシーを既定の SQL Information Protection ポリシーにリセットします。

重要

情報保護ポリシー ファイルは SQL Server に保存されません。 SSMS では既定の Information Protection ポリシーが使用されます。 カスタマイズされた Information Protection ポリシーでエラーが発生した場合、SSMS では既定のポリシーを使用できません。 データ分類でエラーが発生します。 解決するには、[情報保護ポリシーのリセット] をクリックし、既定のポリシーを使用し、データ分類をもう一度有効にします。

分類メタデータへのアクセス

SQL Server 2019 には sys.sensitivity_classifications というシステム カタログ ビューが導入されています。 このビューでは、情報の種類と機密ラベルが返されます。

SQL Server 2019 インスタンスで、sys.sensitivity_classifications を問い合わせ、分類されているすべての列とそれらに対応する分類を確認します。 次に例を示します。

SELECT 
    schema_name(O.schema_id) AS schema_name,
    O.NAME AS table_name,
    C.NAME AS column_name,
    information_type,
	label,
	rank,
	rank_desc
FROM sys.sensitivity_classifications sc
    JOIN sys.objects O
    ON  sc.major_id = O.object_id
	JOIN sys.columns C 
    ON  sc.major_id = C.object_id  AND sc.minor_id = C.column_id

SQL Server 2019 より前の場合、情報の種類と機密ラベルの分類メタデータは次の拡張プロパティにあります。

  • sys_information_type_name
  • sys_sensitivity_label_name

SQL Server 2017 以前のインスタンスの場合、次の例からは、分類されているすべての列とそれらに対応する分類が返されます。

SELECT
    schema_name(O.schema_id) AS schema_name,
    O.NAME AS table_name,
    C.NAME AS column_name,
    information_type,
    sensitivity_label 
FROM
    (
        SELECT
            IT.major_id,
            IT.minor_id,
            IT.information_type,
            L.sensitivity_label 
        FROM
        (
            SELECT
                major_id,
                minor_id,
                value AS information_type 
            FROM sys.extended_properties 
            WHERE NAME = 'sys_information_type_name'
        ) IT 
        FULL OUTER JOIN
        (
            SELECT
                major_id,
                minor_id,
                value AS sensitivity_label 
            FROM sys.extended_properties 
            WHERE NAME = 'sys_sensitivity_label_name'
        ) L 
        ON IT.major_id = L.major_id AND IT.minor_id = L.minor_id
    ) EP
    JOIN sys.objects O
    ON  EP.major_id = O.object_id 
    JOIN sys.columns C 
    ON  EP.major_id = C.object_id AND EP.minor_id = C.column_id

アクセス許可

SQL Server 2019 のインスタンスでは、分類を表示するために VIEW ANY SENSITIVITY CLASSIFICATION 権限が必要です。 詳細については、「 Metadata Visibility Configuration」を参照してください。

SQL Server 2019 よりも前の場合、メタデータには、拡張プロパティ カタログ ビュー sys.extended_properties を使用してアクセスすることができます。

分類を管理するには、ALTER ANY SENSITIVITY CLASSIFICATION 権限が必要です。 ALTER ANY SENSITIVITY CLASSIFICATION は、データベース権限 ALTER またはサーバー権限 CONTROL SERVER によって示されます。

分類の管理

T-SQL を使って、列の分類を追加または削除したり、データベース全体のすべての分類を取得したりできます。

次のステップ

Azure SQL Database については、「Azure SQL Database のデータの検出と分類」を参照してください。

次の列レベルのセキュリティ メカニズムを適用して、機微な列の保護を検討してください。