Sql-Server-2008-R2
監視和記錄 SQL 伺服器上使用者的查詢?
我需要找到一種方法來記錄來自使用者的所有腳本和查詢(SELECT、INSERT、UPDATE、DELETE 和 EXEC)。
上下文:我想檢查我的支持人員在數據庫上執行了哪些類型的查詢。此時,我要求他們複製粘貼他們在 Teams 頻道中執行的每個腳本,但我想放鬆一下並使用自動化系統。這些使用者使用他們在數據庫上的帳戶登錄。我可以辨識它們。
聽起來您想審核使用者活動。您應該考慮使用內置的審計功能,它是為審計使用者活動而設計的。這裡有一個非常簡單的設置教程。如果您未使用符合條件的 SQL Server 版本,則應考慮使用更現代(且受支持!)的版本,因為自 SQL Server 2016 SP1 起,數據庫審核已擴展到所有版本。
當然,您可以使用 Profiler(讓您的系統崩潰)或擴展事件(每次需要分析數據時都哭泣)。審核具有更好的工具支持 - 對於臨時檢查,您只需右鍵點擊
View Audit Logs
, 並查看錯誤日誌或 SQL Server 代理歷史記錄等數據。當然,您也可以使用 查詢數據,
sys.fn_get_audit_file
並且可以圍繞它自動執行操作,並且輸出比原始 XML 更容易使用。只是證明它很容易設置,並且很容易驗證它是否設置正確。