開始使用 Azure SQL 受控執行個體稽核 \(部分機器翻譯\)

適用於:Azure SQL 受控執行個體

Azure SQL 受控執行個體稽核會追蹤資料庫事件並將事件寫入至您 Azure 儲存體帳戶中的稽核記錄。 稽核也會:

  • 協助您維護合規性、了解資料庫活動,以及獲取可能指出業務疑慮或可疑安全性違規之不一致及異常的見解。
  • 啟用及推動遵循法規標準,但不保證符合法規。 如需詳細資訊,請參閱 Microsoft Azure 信任中心,您可在其中找到 SQL 受控執行個體合規性認證的最新清單。

重要

適用於 Azure SQL Database、Azure Synapse 和 Azure SQL 受控執行個體的稽核已針對可用性和效能最佳化。 在大量活動或網路高度負載期間,Azure SQL Database、Azure Synapse 和 Azure SQL 受控執行個體會允許作業繼續進行,而且可能不會記錄部份稽核事件。

設定將伺服器的稽核儲存至 Azure 儲存體

下節描述在您受控執行個體上進行稽核的設定。

  1. 移至 Azure 入口網站

  2. 建立用來儲存稽核記錄的 Azure 儲存體容器

    1. 瀏覽至您要儲存稽核記錄的 Azure 儲存體帳戶。

      • 請在與受控執行個體相同的區域中使用儲存體帳戶,以避免跨區域讀取/寫入。
      • 如果您的儲存體帳戶位於虛擬網路或防火牆後方,請參閱授與虛擬網路存取權
      • 如果將保留期間從 0 (無限制的保留) 變更為任何其他值,保留只會套用至保留值變更之後所寫入的記錄 (即使之後啟用保留期,在保留設定為 [無限制] 期間所寫入記錄會予以保留)。
    2. 在儲存體帳戶中,移至 [概觀],然後按一下 [Blob]。

      Screenshot showing the Azure Blobs widget.

    3. 在上方功能表中,選取 [+ 容器] 建立新的容器。

      Screenshot showing the Create blob container icon.

    4. 提供一個容器 [名稱],將 [公用存取層級] 設定為 [私人],然後選取 [確定]。

      Screenshot showing the Create blob container configuration.

    重要

    客戶希望針對伺服器或資料庫層級的稽核事件設定不可變的記錄存放區,應該依循 Azure 儲存體所提供的指示。 (在您設定不可變的 Blob 儲存體時,請確定您已選取 [允許其他附加]。)

  3. 在建立稽核紀錄的容器之後,共有兩個方法可將該容器設定為稽核記錄的目標:使用 T-SQL使用 SQL Server Management Studio (SSMS) UI

    • 使用 T-SQL 來設定稽核記錄的 Blob 儲存體:

      1. 在容器清單中,選取新建立的容器,然後選取 [容器屬性]。

        Screenshot showing the Blob container properties button.

      2. 選取複製圖示以複製容器 URL,然後儲存 URL (例如,儲存在 [記事本] 中) 以供之後使用。 容器 URL 的格式應為 https://<StorageName>.blob.core.windows.net/<ContainerName>

        Screenshot showing the Blob container copy URL.

      3. 產生 Azure 儲存體 SAS 權杖來將受控執行個體稽核存取權限授與至儲存體帳戶:

        • 瀏覽至您在上一個步驟中建立容器的 Azure 儲存體帳戶。

        • 在 [儲存體設定] 功能表中,選取 [共用存取簽章]。

          Shared access signature icon in storage settings menu.

        • 請依照下列方式設定 SAS:

          • 允許的服務:Blob

          • 開始日期:若要避免時區相關的問題,請使用昨天的日期

          • 結束日期:選擇此 SAS 權杖到期的日期

            注意

            在過期時更新權杖,以避免稽核失敗。

          • 選取 [產生 SAS]。

            Screenshot showing the SAS configuration.

        • SAS 權杖會出現在底部。 選取複製圖示以複製權杖,然後儲存權杖 (例如,儲存在 [記事本] 中) 以供之後使用。

          Screenshot showing how to copy SAS token.

          重要

          移除權杖開頭的問號 (?) 字元。

      4. 透過 SQL Server Management Studio (SSMS) 或任何其他支援的工具連線至受控執行個體。

      5. 執行下列 T-SQL 陳述式,以使用您在上一個步驟中建立的容器 URL 和 SAS 權杖來建立新的認證

        CREATE CREDENTIAL [<container_url>]
        WITH IDENTITY='SHARED ACCESS SIGNATURE',
        SECRET = '<SAS KEY>'
        GO
        
      6. 執行下列 T-SQL 陳述式來建立新的伺服器稽核 (選擇您自己的稽核名稱,並使用您在上一個步驟中建立的容器 URL)。 如果未指定,RETENTION_DAYS 預設為 0 (無限制的保留期):

        CREATE SERVER AUDIT [<your_audit_name>]
        TO URL (PATH ='<container_url>', RETENTION_DAYS = <integer>);
        GO
        
      7. 藉由建立伺服器稽核規格或資料庫稽核規格來繼續。

    • 請使用 SQL Server Management Studio (SSMS) 18 和更新版本設定稽核記錄的 Blob 儲存體:

      1. 使用 SQL Server Management Studio (SSMS) UI 來連線至受控執行個體。

      2. 展開 [物件總管] 的根節點。

      3. 展開 [安全性] 節點,以滑鼠右鍵按一下 [稽核] 節點,然後選取 [新增稽核]:

        Screenshot showing how to Expand security and audit node.

      4. 確定已選取 [稽核目的地] 中的 [URL],然後選取 [瀏覽]:

        Screenshot showing how to Browse Azure Storage.

      5. (選擇性) 登入您的 Azure 帳戶:

        Screenshot showing how to Sign in to Azure.

      6. 從下拉式清單中選取訂用帳戶、儲存體帳戶和 Blob 容器,或者,選取 [建立] 以建立您自己的容器。 完成之後,選取 [確定]:

        Select Azure subscription, storage account, and blob container.

      7. 在 [建立稽核] 對話方塊中,選取 [確定]。

        注意

        使用 SQL Server Management Studio UI 來建立稽核時,會自動建立具有 SAS 金鑰的容器認證。

      8. 將 Blob 容器設定為稽核記錄的目標之後,如同您對 SQL Server 的操作,請建立並啟用伺服器稽核規格或資料庫稽核規格:

    • 建立伺服器稽核規格 T-SQL 指南

    • 建立資料庫稽核規格 T-SQL 指南

  4. 啟用您在步驟 3 中建立的伺服器稽核:

    ALTER SERVER AUDIT [<your_audit_name>]
    WITH (STATE = ON);
    GO
    

如需其他資訊:

稽核 Microsoft 支援服務作業

適用於 SQL 受控執行個體的 Microsoft 支援服務作業稽核,可讓您在支援要求期間,在 Microsoft 支援工程師的作業需要存取您的伺服器時,對其進行稽核。 將這項功能與稽核搭配使用,可提升您的員工透明度,並可進行異常偵測、趨勢視覺化和資料外洩防護。

若要啟用 Microsoft 支援服務作業的稽核,請在 SQL 受控執行個體中,巡覽至 [安全性] > [稽核] 下的 [建立稽核],然後選取 [Microsoft support operations]。

Screenshot showing the Create audit icon.

注意

您必須建立另一個伺服器稽核以用於稽核 Microsoft 作業。 如果您在現有的稽核中啟用此核取方塊,則會覆寫該稽核且僅記錄支援作業。

將伺服器的稽核設定至事件中樞或 Azure 監視器記錄

來自受控執行個體的稽核記錄可以傳送至 Azure 事件中樞或 Azure 監視器記錄。 本節說明如何進行此設定:

  1. Azure 入口網站中瀏覽至受控執行個體。

  2. 選取 [診斷設定]

  3. 選取 [開啟診斷]。 如果已經啟用診斷,則會改為顯示 [+新增診斷設定]。

  4. 從記錄清單中選取 [SQLSecurityAuditEvents]

  5. 如果您要設定 Microsoft 支援作業,請在記錄清單中選取 [DevOps 作業稽核記錄]。

  6. 選取稽核事件的目的地:事件中樞、Azure 監視器記錄或兩者。 針對每個目標設定必要參數 (例如 Log Analytics 工作區)。

  7. 選取 [儲存]。

    Screenshot showing how to configure diagnostic settings.

  8. 使用 SQL Server Management Studio (SSMS) 或任何其他支援的用戶端來連線至受控執行個體。

  9. 執行下列 T-SQL 陳述式以建立伺服器稽核:

    CREATE SERVER AUDIT [<your_audit_name>] TO EXTERNAL_MONITOR;
    GO
    
  10. 就像對 SQL Server 一樣,建立和啟用伺服器稽核規格或資料庫稽核規格:

  11. 啟用在步驟 8 中建立的伺服器稽核:

    ALTER SERVER AUDIT [<your_audit_name>]
    WITH (STATE = ON);
    GO
    

使用 T-SQL 設定稽核

-- Create audit without OPERATOR_AUDIT - Will audit standard SQL Audit events
USE [master];
GO

CREATE SERVER AUDIT testingauditnodevops TO EXTERNAL_MONITOR;
GO

CREATE SERVER AUDIT SPECIFICATION testingaudit_Specification_nodevops
FOR SERVER AUDIT testingauditnodevops ADD (SUCCESSFUL_LOGIN_GROUP),
    ADD (BATCH_COMPLETED_GROUP),
    ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON);
GO

ALTER SERVER AUDIT testingauditnodevops
    WITH (STATE = ON);
GO

-- Create separate audit without OPERATOR_AUDIT ON - Will audit Microsoft Support Operations
USE [master]

CREATE SERVER AUDIT testingauditdevops TO EXTERNAL_MONITOR
    WITH (OPERATOR_AUDIT = ON);
GO

CREATE SERVER AUDIT SPECIFICATION testingaudit_Specification_devops
FOR SERVER AUDIT testingauditdevops ADD (SUCCESSFUL_LOGIN_GROUP),
    ADD (BATCH_COMPLETED_GROUP),
    ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON);
GO

ALTER SERVER AUDIT testingauditdevops
    WITH (STATE = ON);
GO

取用稽核記錄

取用儲存在 Azure 儲存體中的記錄

有幾種方法可以用於檢視 Blob 稽核記錄。

  • 使用系統函式 sys.fn_get_audit_file (T-SQL) 以表格格式傳回稽核記錄資料。 如需有關如何使用此函數的詳細資訊,請參閱 sys.fn_get_audit_file 文件 (英文)。

  • 您可以使用工具 (例如 Azure 儲存體總管) 來查看稽核記錄。 在 Azure 儲存體中,稽核記錄會以 Blob 檔案集合的方式儲存在定義來儲存稽核記錄的容器內。 如需儲存體資料夾階層、命名慣例以及記錄格式的詳細資訊,請參閱 Blob 稽核記錄格式參考

  • 如需稽核記錄耗用方法的完整清單,請參閱開始使用 Azure SQL Database 稽核

取用儲存在事件中樞中的記錄

若要取用來自事件中樞的稽核記錄資料,您必須設定資料流以取用事件並將其寫入至目標。 如需詳細資訊,請參閱 Azure 事件中樞文件。

取用和分析儲存在 Azure 監視器記錄中的記錄

如果稽核記錄寫入 Azure 監視器記錄,則會出現在 Log Analytics 工作區中,而您可以在其中對稽核資料執行進階搜尋。 請瀏覽至 Log Analytics 工作區來開始。 在 [一般] 區段下方,選取 [記錄],然後輸入基本的查詢,例如:search "SQLSecurityAuditEvents" 以檢視稽核記錄。

Azure 監視器記錄可供使用整合式搜尋和自訂儀表板來立即分析所有工作負載和伺服器上數百萬筆的記錄,以取得即時作業見解。 如需 Azure 監視器的記錄搜尋語言和命令詳細資訊,請參閱 Azure 監視器記錄搜尋參考

注意

本文最近有所更新,改為使用「Azure 監視器記錄」一詞,而非 Log Analytics。 記錄資料仍儲存在 Log Analytics 工作區中,並仍由相同的 Log Analytics 服務收集和分析。 我們會持續更新術語,以更精確地反映 Azure 監視器記錄的角色。 如需詳細資料,請參閱 Azure 監視器遙測變更

Azure SQL 受控執行個體中的資料庫和 SQL Server 中的資料庫之間的稽核差異

Azure SQL 受控執行個體中資料庫和 SQL Server 中資料庫之間的主要稽核差異在於:

  • 在 Azure SQL 受控執行個體中,稽核會在伺服器層級進行,並將 .xel 記錄檔儲存在 Azure Blob 儲存體中。
  • 在 SQL Server 中,稽核會在伺服器層級進行,但會將事件儲存在檔案系統和 Windows 事件記錄中。

受控執行個體中的 XEvent 稽核支援 Azure Blob 儲存體目標。 不支援檔案和 Windows 記錄。

向 Azure Blob 儲存體進行稽核的 CREATE AUDIT 語法有一個主要差異:

  • 已提供新語法 TO URL,可讓您指定放置 .xel 檔案的 Azure Blob 儲存體容器 URL。
  • 已提供新語法 TO EXTERNAL MONITOR 以啟用事件中樞和 Azure 監視器記錄目標。
  • 「不支援」語法 TO FILE,因為 Azure SQL 受控執行個體無法存取 Windows 檔案共用。
  • 不支援關機選項。
  • 不支援使用 0 的 queue_delay

後續步驟