適用於:Azure SQL 受控執行個體
Azure SQL 受控執行個體稽核會追蹤資料庫事件並將事件寫入至您 Azure 儲存體帳戶中的稽核記錄。
稽核也會:
- 協助您維護合規性、了解資料庫活動,以及獲取可能指出業務疑慮或可疑安全性違規之不一致及異常的見解。
- 啟用及推動遵循法規標準,但不保證符合法規。 如需詳細資訊,請參閱 Microsoft Azure 信任中心,您可在其中找到 SQL 受控執行個體合規性認證的最新清單。
重要
Azure SQL 受控執行個體的稽核已針對可用性和效能進行最佳化。 在高活動或高網路負載期間,Azure SQL 受控執行個體允許作業繼續進行,而且可能不會記錄某些稽核事件。
將執行個體的稽核設定為 Azure 儲存體
下一節說明 SQL 受控執行個體上的稽核設定。
移至 Azure 入口網站。
建立用來儲存稽核記錄的 Azure 儲存體容器。
瀏覽至您要儲存稽核記錄的 Azure 儲存體帳戶。
- 使用與 SQL 受控執行個體相同的區域中的儲存體帳戶,以避免跨區域讀取/寫入。
- 如果您的儲存體帳戶位於虛擬網路或防火牆後方,請參閱授與虛擬網路存取權。
- 如果您將保留期間從 0 (無限制保留) 變更為任何其他值,則保留只會套用至變更保留值之後寫入的記錄。 在保留設定為 無限制 期間寫入的記錄會保留,即使在啟用保留之後也是如此。
在儲存體帳戶中,移至 [概觀],然後按一下 [Blob]。
在上方功能表中,選取 [+ 容器] 建立新的容器。
提供一個容器 [名稱],將 [公用存取層級] 設定為 [私人],然後選取 [確定]。
重要
客戶希望針對伺服器或資料庫層級的稽核事件設定不可變的記錄存放區,應該依循 Azure 儲存體所提供的指示。 (當您設定不可變的 Blob 儲存體時,請確定您選取 [允許其他附加]。
在建立稽核紀錄的容器之後,共有兩個方法可將該容器設定為稽核記錄的目標:使用 T-SQL 或使用 SQL Server Management Studio (SSMS) UI:
使用 T-SQL 設定稽核記錄的 Blob 儲存體:
在容器清單中,選取新建立的容器,然後選取 [容器屬性]。
選取複製圖示以複製容器 URL,然後儲存 URL (例如,儲存在 [記事本] 中) 以供之後使用。 容器 URL 的格式應為
https://<StorageName>.blob.core.windows.net/<ContainerName>
產生 Azure 儲存體 SAS 權杖 ,以授與儲存體帳戶的 SQL 受控執行個體稽核存取權:
瀏覽至您在上一個步驟中建立容器的 Azure 儲存體帳戶。
在 [儲存體設定] 功能表中,選取 [共用存取簽章]。
請依照下列方式設定 SAS:
允許的服務:Blob
開始日期:若要避免時區相關的問題,請使用昨天的日期
結束日期:選擇此 SAS 權杖到期的日期
注意
若要避免稽核失敗,請在到期時更新權杖。
選取 [產生 SAS]。
SAS 權杖會出現在底部。 選取複製圖示以複製權杖,然後儲存權杖 (例如,儲存在 [記事本] 中) 以供之後使用。
重要
移除權杖開頭的問號 (
?) 字元。
透過 SQL Server Management Studio 或任何其他支援的工具連線到您的 SQL 受控執行個體。
執行下列 T-SQL 陳述式,以使用您在上一個步驟中建立的容器 URL 和 SAS 權杖來建立新的認證:
CREATE CREDENTIAL [<container_url>] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = '<SAS KEY>' GO執行下列 T-SQL 陳述式來建立新的伺服器稽核 (選擇您自己的稽核名稱,並使用您在上一個步驟中建立的容器 URL)。 如果未指定,
RETENTION_DAYS預設為 0 (無限制的保留期):CREATE SERVER AUDIT [<your_audit_name>] TO URL (PATH ='<container_url>', RETENTION_DAYS = <integer>); GO藉由建立伺服器稽核規格或資料庫稽核規格來繼續。
使用 SQL Server Management Studio 18 和更新版本來設定稽核記錄的 Blob 儲存體:
使用 SQL Server Management Studio UI 連線到 SQL 受控執行個體。
展開 [物件總管] 的根註解。
展開 [安全性] 節點,以滑鼠右鍵按一下 [稽核] 節點,然後選取 [新增稽核]:
確定已選取 [稽核目的地] 中的 [URL],然後選取 [瀏覽]:
(選擇性) 登入您的 Azure 帳戶:
從下拉式清單中選取訂用帳戶、儲存體帳戶和 Blob 容器,或者,選取 [建立] 以建立您自己的容器。 完成後,請選取 [ 確定]:
在 [建立稽核] 對話方塊中,選取 [確定]。
注意
使用 SQL Server Management Studio UI 建立稽核時,會自動建立具有 SAS 金鑰之容器的認證。
將 Blob 容器設定為稽核記錄的目標之後,請建立並啟用伺服器稽核規格或資料庫稽核規格,就像針對 SQL Server 一樣:
使用下列 T-SQL 陳述式來啟用伺服器稽核:
ALTER SERVER AUDIT [<your_audit_name>]
WITH (STATE = ON);
GO
如需其他資訊:
稽核 Microsoft 支援服務作業
適用於 SQL 受控執行個體的 Microsoft 支援服務作業稽核,可讓您在支援要求期間,在 Microsoft 支援工程師的作業需要存取您的伺服器時,對其進行稽核。 將這項功能與稽核搭配使用,可提升您的員工透明度,並可進行異常偵測、趨勢視覺化和資料外洩防護。
若要啟用 Microsoft 支援服務作業的稽核,請在 SQL 受控執行個體中,巡覽至 [安全性] [稽核] 下的 [建立稽核],然後選取 [Microsoft support operations]。
注意
您必須建立另一個伺服器稽核以用於稽核 Microsoft 作業。 如果您針對現有稽核啟用此核取方塊,則會覆寫稽核,並僅記錄支援作業。
將伺服器的稽核設定至事件中樞或 Azure 監視器記錄
來自 SQL 受控執行個體的稽核記錄可以傳送至 Azure 事件中樞或 Azure 監視器記錄。 本節介紹如何進行此配置:
在 Azure 入口網站 中流覽至 SQL 受控執行個體。
選取 [診斷設定]。
選取 [開啟診斷]。 如果已啟用診斷,則可以改為使用 +新增診斷設定 。
從記錄清單中選取 [SQLSecurityAuditEvents]。
如果您要設定 Microsoft 支援服務作業,請在記錄清單中選取 [DevOps 作業稽核記錄 ]。
選取稽核事件的目的地:事件中樞、Azure 監視器記錄或兩者。 針對每個目標設定必要參數 (例如 Log Analytics 工作區)。
選取 [儲存]。
使用 SQL Server Management Studio (SSMS) 或任何其他支援的用戶端連線到 SQL 受控執行個體。
執行下列 T-SQL 陳述式以建立伺服器稽核:
CREATE SERVER AUDIT [<your_audit_name>] TO EXTERNAL_MONITOR; GO就像對 SQL Server 一樣,建立和啟用伺服器稽核規格或資料庫稽核規格:
啟用在步驟 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) 以表格式傳回稽核記錄資料。
您可以使用工具 (例如 Azure 儲存體總管) 來查看稽核記錄。 在 Azure 儲存體中,稽核記錄會以 Blob 檔案集合的方式儲存在定義來儲存稽核記錄的容器內。 如需儲存體資料夾階層、命名慣例以及記錄格式的詳細資訊,請參閱 Blob 稽核記錄格式參考。
如需稽核記錄耗用方法的完整清單,請參閱開始使用 Azure SQL Database 稽核。
取用儲存在事件中樞中的記錄
若要取用事件中樞的稽核記錄資料,您必須設定資料流程來取用事件,並將其寫入目標。 如需詳細資訊,請參閱 Azure 事件中樞文件。
取用和分析儲存在 Azure 監視器記錄中的記錄
如果稽核記錄寫入 Azure 監視器記錄,則可在 Log Analytics 工作區中使用這些記錄,您可以在其中對稽核資料執行進階搜尋。 請瀏覽至 Log Analytics 工作區來開始。 在 [一般] 區段下方,選取 [記錄],然後輸入基本的查詢,例如: 以檢視稽核記錄。
Azure 監視器記錄可供使用整合式搜尋和自訂儀表板來立即分析所有工作負載和伺服器上數百萬筆的記錄,以取得即時作業見解。 如需 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 檔案共用。 - 不支援關機選項。
-
queue_delay使用 0 的 。