分享方式:


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

適用於︰SQL Server 2019 - 僅限 Windows

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

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

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

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

  • 為 SQL Server 服務帳戶提供登錄區 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security 的完整權限。

    重要

    不當編輯登錄可能會造成系統嚴重受損。 在變更登錄之前,我們建議您備份電腦上的所有重要資料。

限制事項

  • 網域原則可覆寫安全性記錄檔的本地設定。 在此情況下,網域原則可能會覆寫子類別設定 (auditpol /get /subcategory:"application generated")。 SQL Server 沒有任何方法可以偵測其嘗試稽核的事件不會進行記錄。

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

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

    • SQL Server 無法偵測出系統無法在安全性記錄檔中記錄事件,進而導致可能遺失稽核事件

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

  • SQL Server 稽核記錄比一般 Windows 事件記錄檔項目包含更多資料。 此外,視稽核規格的設定而定,SQL Server 可能會在短時間內產生數千筆稽核記錄 (每秒數千筆)。 在高負載期間下,如果稽核記錄寫入應用程式記錄檔或安全性記錄檔,這可能會導致不良狀況。

    這些不良狀況可能包括:

    • 事件記錄檔快速循環 (事件會遭到迅速覆寫,因為記錄檔達到其大小限制)

    • 從 Windows 事件記錄檔讀取的其他應用程式或服務可能會受到負面影響

    • 由於事件遭到迅速覆寫,因此系統管理員可能無法使用目標事件記錄檔

    系統管理員可能需要採取以下步驟來減輕這些不良狀況:

    1. 增加目標記錄檔的大小 (如果稽核規格十分詳盡,4 GB 的大小並不適用)。

    2. 減少正在稽核的事件數目。

    3. 將稽核記錄輸出至檔案,而不是事件記錄檔。

權限

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

使用 auditpol 來設定 Windows 的稽核物件存取權設定

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

    1. 從 [開始] 功能表中,瀏覽至 [命令提示字元],接著選取 [以系統管理員身分執行]。

    2. 如果開啟 [使用者帳戶控制] 對話方塊,請選取 [繼續]。

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

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

使用 secpol 將「產生安全性稽核」權限授與給帳戶

  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. 關閉安全性原則工具。

另請參閱