將 SQL Server Audit 事件寫入安全性記錄檔

在高度安全性的環境中,Windows 安全性記錄檔是寫入記錄物件存取之事件的適當位置。 雖然支援其他稽核位置,但是這些位置容易遭算改。

將SQL Server伺服器稽核寫入Windows 安全性記錄有兩個主要需求:

  • 稽核物件存取設定必須設定為可擷取事件。 稽核原則工具 (auditpol.exe) 會在 audit object access 類別目錄中公開各種子原則設定。 若要允許 SQL Server 稽核物件存取權,請完成 [產生的應用程式] 設定。

  • 執行 SQL Server 服務的帳戶必須擁有產生安全性稽核權限,才能寫入 Windows 安全性記錄檔。 根據預設,LOCAL SERVICE 和 NETWORK SERVICE 帳戶都擁有這個權限。 如果SQL Server在其中一個帳戶下執行,則不需要此步驟。

如果 Windows 稽核原則設定為寫入Windows 安全性記錄檔,Windows 稽核原則可能會影響SQL Server稽核,如果稽核原則設定不正確,可能會遺失事件。 一般而言,Windows 安全性記錄檔會設定為覆寫較舊的事件。 這樣做會保留最近的事件。 不過,如果 Windows 安全性記錄檔並非設定為覆寫較舊的事件,只要安全性記錄檔已滿,系統就會發出 Windows 事件 1104 (記錄檔已滿)。 此時:

  • 系統將不會記錄其他安全性事件。

  • SQL Server將無法偵測到系統無法記錄安全性記錄檔中的事件,導致稽核事件可能遺失

  • 在方塊管理員修正安全性記錄檔之後,記錄行為才會返回正常狀態。

本主題內容

開始之前

限制事項

SQL Server電腦的系統管理員應該瞭解網域原則可以覆寫安全性記錄的本機設定。 在此情況下,網域原則可能會覆寫子類別目錄設定 (auditpol /get /subcategory:"application generated" )。 這可能會影響SQL Server記錄事件的能力,而不需要任何方法來偵測SQL Server嘗試稽核的事件不會記錄下來。

安全性

權限

您必須是 Windows 管理員才能設定這些設定。

使用 auditpol 在 Windows 中設定稽核物件存取設定

  1. 以系統管理權限開啟命令提示字元。

    1. 在 [開始] 功能表上,依序指向 [所有程式] 和 [附屬應用程式]、以滑鼠右鍵按一下 [命令提示字元],然後按一下 [以系統管理員身分執行]。

    2. 如果開啟 [使用者帳戶控制] 對話方塊,請按一下 [繼續]

  2. 執行下列陳述式,以便啟用 SQL Server 的稽核程序。

    auditpol /set /subcategory:"application generated" /success:enable /failure:enable  
    
  3. 關閉 [命令提示字元] 視窗。

使用 secpol 將 generate security audits 權限授與帳戶

  1. 在任何 Windows 作業系統的 [開始] 功能表上,按一下 [執行]

  2. 輸入 secpol.msc ,然後按一下 [確定] 。 如果出現 [使用者存取控制] 對話方塊,請按一下 [繼續]

  3. 在本機安全性原則工具中,依序展開 [安全性設定][本機原則] ,然後按一下 [使用者權限指派]

  4. 在結果窗格中,按兩下 [產生安全性稽核]。

  5. [本機安全性設定] 索引標籤上,按一下 [新增使用者或群組]

  6. 在 [選取使用者、電腦或群組] 對話方塊中,輸入使用者帳戶的名稱 (例如 domain1\user1) 並按一下 [確定],或按一下 [進階] 並搜尋帳戶。

  7. 按一下 [確定] 。

  8. 關閉安全性原則工具。

  9. 重新啟動 SQL Server 以啟用此設定。

使用 secpol 在 Windows 中設定稽核物件存取設定

  1. 如果作業系統早于 Windows Vista 或 Windows Server 2008,請按一下 [ 開始 ] 功能表上的 [ 執行]。

  2. 輸入 secpol.msc ,然後按一下 [確定] 。 如果出現 [使用者存取控制] 對話方塊,請按一下 [繼續]

  3. 在本機安全性原則工具中,依序展開 [安全性設定][本機原則] ,然後按一下 [稽核原則]

  4. 在結果窗格中,按兩下 [稽核物件存取]。

  5. [本機安全性設定] 索引標籤的 [稽核這些嘗試] 區域中,同時選取 [成功][失敗]

  6. 按一下 [確定] 。

  7. 關閉安全性原則工具。

另請參閱

SQL Server Audit (Database Engine)