在 SQL Server 2005 中審核“sa”登錄
我有一個要求,只要“sa”使用者帳戶登錄到 SQL Server 2005 實例,我就需要進行審核(並且可能會收到通知)。此外,還有一個偏好是登錄訪問的數據庫也被審計。
我知道我可以在較新版本的 SQL Server 中使用擴展事件或伺服器審核,但由於我僅限於 SQL Server 2005,我能想到的唯一選擇是:
- 為“sa”使用者的使用者登錄事件設置伺服器端跟踪到表中
- 設置一個作業,以指定的時間間隔通過電子郵件發送表格的內容
2005 年是否有更有效的方法來實現這一目標?
我會說考慮登錄觸發器來實現這一點。這樣您就不會使用伺服器端跟踪。您還可以審核 SQL Server 錯誤日誌中的所有成功登錄(右鍵點擊實例、屬性、安全性,然後選擇成功和失敗的登錄。但我不相信這會顯示數據庫上下文資訊)
另外 - 如果可能的話,我會認真考慮升級到更高版本的 SQL。SQL 2005 是兩個(如果算上 2008 R2,則為三個)版本。我知道你可能知道,但如果我不說出來我會很難過:-)
我也強烈反對使用 SA 進行任何登錄。SA 是一個高度特權的帳戶。它是 SQL Server 中的高特權帳戶。每個人都知道有一個名為 SA 的帳戶,它很容易遭到黑客攻擊。我傾向於只推動 Windows 身份驗證,並確保添加一個適當的 DBA 團隊可以正確且安全地添加到的組。我經常在混合模式下禁用 SA 帳戶,並將創建另一個具有 SA 權限但名稱不具描述性的帳戶。如果出於某種原因,SA 帳戶需要保留,我會嘗試給它一個可怕的密碼並將其儲存在一個非常安全的地方而不使用它。
由於沒有太多人使用的 SA 帳戶,您需要審核其使用情況,您可以授予更精細的權限以在 SQL 中執行所需的活動,僅此而已。與觀看 SA 帳戶活動相比,最低權限和嚴格的訪問列表將使您走得更遠。
無論如何,登錄觸發器可能是最好的選擇。跟踪可以工作,但有相關的成本(也有登錄觸發器,但我猜跟踪的成本對你來說會更貴)