SQL Server 中的預設跟踪與審核
目前我正在一個啟用了預設跟踪的環境中工作,我想建議我們將 SQL 伺服器審計添加到我們的環境中。
我正在尋找一些要點,以向我們更高級的數據庫成員和認為預設跟踪足夠的管理層提出。
- 這兩種不同的解決方案有什麼區別?
- 使用其中一個有什麼優點/缺點嗎?
預設跟踪只是有關係統的行為資訊的集合。這與審計不同。他們做不同的事情並支持不同的目的。一個不會取代另一個。
此外,預設跟踪實際上不如在預設情況下在所有系統上執行的另一個東西 system_health 擴展事件會話。就係統收集和載入的資訊而言,system_health 是預設跟踪的更好替代方案。那裡的資訊都是關於錯誤、死鎖、漫長的等待時間、長時間執行的查詢等等。這與安全性和變更審計無關。
SQL Server Audit 在幕後使用擴展事件作為跟踪安全性、更改審核以及審核伺服器所需的其他內容的機制。這與預設跟踪或 system_health 不同。
所以,我會告訴你更資深的人,你可能需要兩者。好消息是,system_health 已經存在。現在,實施審計帶來了相當多的工作,以及在如何進行部署和其他事情方面的一些變化。在實施之前,您需要進行大量測試。
我完全同意格蘭特的評論。你有一些“審計”的要求,所以你需要滿足這些要求。僅僅說“審計”是不夠的,你必須告訴他們更具體。
如果他們不關心進行討論,那麼您可以爭辯說您已經有一個審核解決方案 - SQL Server 預設記錄失敗的登錄。當然,我誇大了,但我希望你明白我的意思。
如果任何預設機制(預設跟踪或系統執行狀況)滿足您的要求,那麼您就完成了。不過,我懷疑他們會。您可以調查兩者,了解它們擷取的事件、資訊的去向以及資訊的保留時間。如果您需要有關具體細節的幫助,請在此處詢問。您無法調整預設跟踪,但可以修改系統執行狀況。OTOH,如果您要這樣做,我懷疑更改已經足夠大,因此您最終會創建自己的事件會話規範。
但是,當然,如果您的要求恰好與伺服器審核功能相匹配(順便說一句,它基於擴展事件),那麼您可能想要使用它。