共用方式為


SQL 資料探索與分類

適用於:SQL Server

資料探索與分類新增了多項功能,包括探索分類、為資料庫內的敏感性資料加上標籤並予以報告。 這可以透過 T-SQL 或使用 SQL Server Management Studio(SSMS)來完成。 發現並分類您最敏感的資料(商業、財務、醫療等)可以在您的組織資訊保護層級中發揮關鍵作用。 它可以作為下列的基礎結構:

  • 協助符合資料隱私權標準。
  • 監控存取包含高度敏感資料的資料庫/資料欄位。

注意

資料發現與分類支援2012 SQL Server及以後版本,並可與SSMS 17.5或更新版本搭配使用。 關於Azure SQL Database,請參見 Azure SQL Database 資料發現與分類

概觀

資料發現與分類為 SQL Database、SQL Managed Instance 和 Azure Synapse 創造了一種全新的資訊保護範式,旨在保護資料,而不僅僅是資料庫本身。 目前支援下列功能:

  • 探索與建議:分類引擎會掃描您的資料庫,並識別包含可能是敏感性資料的資料行。 它接著可讓您輕鬆地檢閱並套用適當的分類建議,以及手動分類資料行。
  • 標記 - 在資料行上可以持續標示敏感度分類標籤。
  • 可見度:您可以在詳細報表中檢視資料庫分類狀態,並將此報表列印或匯出,用於合規性和稽核用途。

探索、分類敏感資料行以及加上標籤

下節所描述的步驟是有關探索、分類和標示包含您資料庫中敏感性資料的資料行,以及檢視資料庫的目前分類狀態,並匯出報表。

分類包含兩個元資料屬性:

  • 標籤 - 主分類屬性,用來定義資料行中所儲存資料的敏感度等級。
  • 資訊類型:提供關於欄中儲存的資料類型的更多細節。

分類你的SQL Server資料庫:

  1. 在 SQL Server Management Studio(SSMS)中,連接到 SQL Server。

  2. 在 SSMS Object Explorer 中,選擇你想分類的資料庫,並選擇 Tasks>Data Discovery and Classification>Classify Data...

    截圖Object Explorer顯示任務 資料發現與分類 分類資料...選中.

  3. 分類引擎會掃描您資料庫中是否有資料行 (僅根據資料行名稱) 包含潛在敏感度資料,並提供建議的資料行分類清單:

    • 若要檢視建議的資料行分類清單,請點選頂端的建議通知方塊或視窗底部的建議面板:

      顯示通知的螢幕擷取畫面,其中指出我們找到 39 個資料行含有分類建議,按一下這裡即可檢視。

      顯示通知的螢幕擷取畫面,其指出有 39 個資料行含有分類建議 (按一下以檢視)。

    • 檢閱建議清單:

      • 若要接受特定欄的建議,請勾選相關資料列左側欄中的核取方塊。 您也可以勾選建議表格標題中的核取方塊,將「所有建議」標記為已接受。

      • 您也可以使用下拉式方塊變更建議的「資訊類型」和「敏感度標籤」。

      顯示建議清單的螢幕擷取畫面。

    • 若要套用選取的建議,請點選 [儲存選取的建議] 按鈕。

      [接受選取的建議] 按鈕的螢幕擷取畫面。

注意

Microsoft Purview Information Protection 政策模式被啟用時,自動執行資料發現並提供敏感欄位建議的推薦引擎將被停用。

  1. 若要顯示分類的資料行,請在下拉式清單中選取適當的結構描述和對應的資料表,然後點選 [載入資料行]。

    SSMS 資料分類載入分類資料行的螢幕擷取畫面。

  2. 您也可以手動分類資料行作為 (以及) 建議分類的替代方法:

    • 在視窗頂端的功能表中點選 [新增分類]。

      顯示頂端功能表的螢幕擷取畫面,其中已標註 [新增分類] 選項。

    • 在開啟的內容視窗中,輸入您想要分類的資料行名稱、資訊類型和敏感度標籤。 系統會根據主要頁面中的項目選取結構描述和資料表。

      顯示 [新增分類] 內容視窗的螢幕擷取畫面。

    • 如果您想要在單次嘗試中為特定資料表的所有未分類資料行新增分類,請在 [新增分類] 頁面的 [資料行] 下拉式清單中選取 [所有未分類]。

      SSMS 資料分類選取所有未歸類的資料列的螢幕截圖

  3. 若要完成分類,並使用新的分類中繼資料替資料庫資料行永久加上標籤 (標記),請點選視窗上方功能表中的 [儲存] 按鈕。

    顯示上方選單的截圖,其中已標註 [儲存] 選項。

  4. 若要產生含有資料庫分類狀態完整摘要的報表,請點選視窗上方功能表中的 [檢視報表]。 (您也可以使用 SSMS 產生報表:選取您想要產生報表的資料庫,然後依序選擇 [工作] [資料探索與分類] > [產生報表...])

    顯示頂端功能表的螢幕擷取畫面,並標示出 [檢視報表] 選項。

    顯示 [SQL 資料分類報表] 的螢幕擷取畫面。

請使用Microsoft Purview Information Protection政策分類您的資料庫

注意

Microsoft Information Protection(簡稱 MIP)已重新命名為 Microsoft Purview Information Protection。 MIP與Microsoft Purview Information Protection這兩個詞在本文件中常被交替使用,但兩者指的概念相同。

Microsoft Purview Information Protection標籤為使用者提供了一種簡單且統一的方式,讓使用者能在SQL Server中分類敏感資料。 MIP 敏感性標籤由 Microsoft 365 合規中心 [後更名為 Microsoft Purview合規入口]建立與管理。 欲了解如何在合規入口網站Microsoft Purview建立及發布MIP敏感標籤,請參閱文章Microsoft Information Protection敏感標籤

現在你可以用 SSMS 在來源(SQL Server)用 Microsoft Purview Information Protection 標籤分類資料,這些標籤在 Power BI、Office 及其他Microsoft產品中都有使用。 這些敏感性標籤在資料庫的欄位層級套用,與 SQL Information Protection 政策相同。

連接至支援資料來源中標有敏感度標籤資料的 Power BI 資料集或報表,可以自動繼承這些標籤,因此資料移轉至 Power BI 以及匯出至下游應用程式後,依然會維持已分類的狀態。 SSMS 中 MIP 政策的可用性可協助您實現企業全面性的端到端分類解決方案。

設定Microsoft Purview Information Protection政策的步驟

  1. 在 SQL Server Management Studio(SSMS)中,連接到 SQL Server。

  2. 在 SSMS Object Explorer 中,選擇你想分類的資料庫,並選擇 Tasks>資料發現與分類>Set Microsoft Information Protection Policy

    在 SSMS 中設置 Microsoft 信息保護政策的截圖

  3. Microsoft 365 會顯示一個認證視窗,以設定 Microsoft Information Protection Policy。 選擇 Sign In,輸入或選擇有效的使用者憑證,以認證給你的Microsoft 365租戶。

    驗證過程的截圖,以設定Microsoft 資訊保護政策

  4. 如果驗證成功,您會看到狀態為成功的快顯視窗。

    SSMS 中成功設定 Microsoft Information Protection 政策的截圖

  5. 可選 - 如果你想登入任何Microsoft主權雲端來認證Microsoft 365,請前往 SSMS >Tools>Options>Azure Services>Azure Cloud, 並將 Name 改為相關的 Microsoft 主權雲。

    選擇 Azure 雲類型於 SSMS 中的截圖

  6. 在 SSMS Object Explorer 視窗中,右鍵點擊你想分類的資料庫,選擇 Tasks>Data Discovery and Classification>Classify Data。 你現在可以使用 Microsoft 365 租戶中定義的 MIP 敏感性標籤新增分類,並用這些標籤來分類 SQL Server 中的欄位。

    在 SSMS 中選擇 Microsoft Information Protection 策略的敏感性標籤

    在 Microsoft Information Protection Policy 模式下,自動資料發現與推薦功能會被停用。 目前僅以 SQL Information Protection Policy 模式提供。

要將 Information Protection 原則重設為預設值或 SQL Information Protection,請前往 SSMS Object Explorer,右鍵點擊資料庫,選擇 Tasks>Data Discovery and Classification>重設 Information Protection 原則為預設值。 這會套用預設的 SQL Information Protection 政策,你可以用 SQL 敏感性標籤來分類資料,而非 MIP 標籤。

重置資訊保護政策截圖(SSMS 中)

要從自訂 JSON 檔案啟用 Information Protection 政策,請前往 SSMS Object Explorer,右鍵點擊資料庫,選擇 Tasks>Data Discovery and Classification>Set Information Protection Policy File

注意

警告圖示表示該欄位先前是根據不同於目前所選政策模式的資訊保護政策所分類。 例如,如果你目前處於 Microsoft Information Protection 模式,且某欄先前曾使用 SQL Information Protection Policy 或自訂政策檔案中的 Information Protection Policy 分類,你會看到該欄位有警告圖示。 您可以決定將資料行的分類變更為目前原則模式中任何可用的敏感度標籤,或是繼續維持原狀。 原則不相符的資料分類警告螢幕擷取畫面

使用 SSMS 管理資料保護政策

您可以使用最新版本的 SQL Server Management Studio來管理Information Protection政策:

  1. 在 SQL Server Management Studio(SSMS)中,連接到 SQL Server。

  2. 在 SSMS Object Explorer中,選擇其中一個資料庫,並選擇 Tasks>Data Discovery and Classification

    以下選單選項允許您管理資訊保護政策:

  • Set Microsoft Information Protection Policy:將 Information Protection Policy 設為 Microsoft Purview Information Protection Policy。

  • Set Information Protection Policy File:使用選取的 JSON 文件中定義的 SQL Information Protection Policy。 (參見預設的 Information Protection Policy File

  • Export Information Protection Policy:將 Information Protection Policy 匯出為 JSON 檔案。

  • Reset Information Protection Policy:將Information Protection Policy 重設為預設的 SQL Information Protection Policy。

重要

Information protection 政策檔案並未儲存在 SQL Server 中。 SSMS 採用預設的 Information Protection Policy。 如果自訂的 Information Protection Policy 失敗,SSMS 將無法使用預設政策。 資料分類失敗。 要解決,請點擊Reset Information Protection Policy 使用預設政策並重新啟用資料分類。

存取分類中繼資料

2019 SQL Server 引入了 sys.sensitivity_classifications 系統目錄檢視。 此檢視會傳回資訊類型和敏感度標籤。

在 2019 SQL Server 實例中,查詢 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

權限

在 2019 SQL Server 實例中,觀看分類需要 VIEW ANY SENSITIVE CLASSIFICATION 權限。 如需相關資訊,請參閱 Metadata Visibility Configuration

2019 SQL Server 之前,這些元資料可透過擴展屬性目錄檢視 sys.extended_properties 存取。

管理分類需要「改變所有敏感度分類」權限。 ALTER ANY SENSITIVITY CLASSIFICATION 是由 ALTER 資料庫權限或 CONTROL SERVER 伺服器權限隱含。

管理分類

您可以使用 T-SQL 新增或移除資料行分類,以及擷取整個資料庫的所有分類。

下一步

關於Azure SQL Database,請參見 Azure SQL Database 資料發現與分類

請考慮透過應用欄位層級安全機制來保護敏感欄位: