Sql-Server-2008-R2

監視和記錄 SQL 伺服器上使用者的查詢?

  • September 3, 2021

我需要找到一種方法來記錄來自使用者的所有腳本和查詢(SELECT、INSERT、UPDATE、DELETE 和 EXEC)。

上下文:我想檢查我的支持人員在數據庫上執行了哪些類型的查詢。此時,我要求他們複製粘貼他們在 Teams 頻道中執行的每個腳本,但我想放鬆一下並使用自動化系統。這些使用者使用他們在數據庫上的帳戶登錄。我可以辨識它們。

聽起來您想審核使用者活動。您應該考慮使用內置的審計功能,它是為審計使用者活動而設計的。這裡有一個非常簡單的設置教程。如果您未使用符合條件的 SQL Server 版本,則應考慮使用更現代(且受支持!)的版本,因為自 SQL Server 2016 SP1 起,數據庫審核已擴展到所有版本。

當然,您可以使用 Profiler(讓您的系統崩潰)或擴展事件(每次需要分析數據時都哭泣)。審核具有更好的工具支持 - 對於臨時檢查,您只需右鍵點擊View Audit Logs, 並查看錯誤日誌或 SQL Server 代理歷史記錄等數據。

在此處輸入圖像描述

當然,您也可以使用 查詢數據,sys.fn_get_audit_file並且可以圍繞它自動執行操作,並且輸出比原始 XML 更容易使用。只是證明它很容易設置,並且很容易驗證它是否設置正確。

引用自:https://dba.stackexchange.com/questions/299001