建立伺服器稽核與伺服器稽核規格

此主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2012 中建立伺服器稽核和伺服器稽核規格。 「稽核」(Audit) SQL Server 或 SQL Server 資料庫的執行個體牽涉到追蹤和記錄系統上所發生的事件。 SQL Server Audit 物件會收集要監視之伺服器或資料庫層級動作和動作群組的單一執行個體。 此稽核位於 SQL Server 執行個體層級。 您可以針對每個 SQL Server 執行個體設有多個稽核。 「伺服器稽核規格」(Server Audit Specification) 物件屬於稽核。 您可以針對每個稽核建立一個伺服器稽核規格,因為這兩者都是在 SQL Server 執行個體範圍所建立。 如需詳細資訊,請參閱<SQL Server Audit (Database Engine)>。

本主題內容

  • 開始之前:

    限制事項

    安全性

  • 若要使用下列項目建立伺服器稽核和伺服器稽核規格:

    SQL Server Management Studio

    Transact-SQL

開始之前

限制事項

  • 在您為它建立伺服器稽核規格之前,必須有稽核存在。 當建立伺服器稽核規格之後,它就會處於停用狀態。

  • CREATE SERVER AUDIT 陳述式位於交易的範圍內。 如果回復交易,也會回復此陳述式。

安全性

權限

  • 若要建立、更改或卸除伺服器稽核,主體需要使用 ALTER ANY SERVER AUDIT 或 CONTROL SERVER 權限。

  • 具有 ALTER ANY SERVER AUDIT 權限的使用者可以建立伺服器稽核規格,並將其繫結至任何稽核。

  • 一旦建立伺服器稽核規格之後,就可以使用具有 CONTROL SERVER 或 ALTER ANY SERVER AUDIT 權限的主體、sysadmin (系統管理員) 帳戶或具有此稽核之明確存取權的主體來加以檢視。

搭配回到頁首連結使用的箭頭圖示[Top]

使用 SQL Server Management Studio

若要建立伺服器稽核

  1. 在 [物件總管] 中,展開 [安全性] 資料夾。

  2. 以滑鼠右鍵按一下 [稽核] 資料夾,然後選取 [新增稽核]

    下列選項可從 [建立稽核] 對話方塊的 [一般] 頁面取得。

    • 稽核名稱
      稽核的名稱。 當您建立新的稽核時會自動產生這個名稱,但是可加以編輯。

    • 佇列延遲 (以毫秒為單位)
      指定在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。 值為 0 表示同步傳遞。 預設的最小值為 1000 (1 秒鐘)。 最大值為 2,147,483,647 (2,147,483.647 秒鐘或是 24 天 20 小時 31 分鐘又 23.647 秒鐘)。

    • 於稽核記錄失敗時:

      • 繼續
        SQL Server 作業繼續進行。 系統不會保留稽核記錄。 稽核會繼續嘗試記錄事件,而且如果失敗狀況已解決,就會恢復稽核。 選取 [繼續] 選項會允許可能違反安全性原則的未稽核活動。 當繼續進行 Database Engine 作業比維持完整稽核更重要時,請選取此選項。 這是預設選項。

      • 關閉伺服器
        當寫入目標的伺服器執行個體無法將資料寫入稽核目標時,強制伺服器關閉。 發出此內容的登入必須具有 SHUTDOWN 權限。 如果登入沒有此權限,這個功能將會失敗,而且將會引發錯誤訊息。 不會發生稽核的事件。 當稽核失敗可能危害系統的安全性或完整性時,請選取此選項。

      • 讓作業失敗
        當 SQL Server Audit 無法寫入稽核記錄時,如果資料庫動作會以其他方式導致稽核事件,這個選項就會讓這些動作失敗。 不會發生稽核的事件。 不會導致稽核事件的動作可繼續進行。 稽核會繼續嘗試記錄事件,而且如果失敗狀況已解決,就會恢復稽核。 當維持完整稽核比 Database Engine 的完整存取權更重要時,請選取此選項。

      安全性注意事項安全性注意事項

      當稽核處於失敗狀態時,專用管理員連接可以繼續執行稽核事件。

    • 稽核目的地 清單
      指定稽核資料的目標。 可用的選項有二進位檔案、Windows 應用程式記錄檔或 Windows 安全性記錄檔。 如果沒有在 Windows 中設定其他設定,SQL Server 就無法寫入 Windows 安全性記錄檔。 如需詳細資訊,請參閱<將 SQL Server Audit 事件寫入安全性記錄檔>。

    • 檔案路徑
      指定當 [稽核目的地] 為檔案時,稽核資料寫入的資料夾位置。

    • 省略符號 (...)
      開啟 [尋找資料夾 - server_name] 對話方塊,指定檔案路徑或建立稽核檔案寫入的資料夾。

    • 稽核檔案最大限制:

      • 最大換用檔案
        指定在達到最大稽核檔案數目時,新的檔案內容就會覆寫最舊的稽核檔案。

      • 檔案上限
        指定在達到最大稽核檔案數目時,導致系統產生其他稽核事件的任何動作都將失敗並發生錯誤。

      • 無限制 核取方塊
        已選取 [最大換用檔案] 底下的 [無限制] 核取方塊時,不會限制將要建立的稽核檔案數目。 [無限制] 核取方塊預設為已選取,並套用至 [最大換用檔案][最大檔案數目] 選項。

      • 檔案數目 方塊
        指定要建立的稽核檔案數目,上限為 2,147,483,647。 只有未核取 [無限制] 時,才能使用此選項。

    • 檔案大小上限
      指定稽核檔案的大小上限,以 MB、GB 或 TB 為單位。 您可以指定介於 1024 MB 和 2,147,483,647 TB 之間的值。 選取 [無限制] 核取方塊並不會限制檔案大小。 指定低於 1024 MB 的值將會失敗並傳回錯誤。 依預設,[無限制] 核取方塊已選取。

    • 保留磁碟空間 核取方塊
      指定在磁碟上預先配置的空間等於指定的檔案大小上限。 只有未選取 [檔案大小上限] 底下的 [無限制] 核取方塊時,才能使用此設定。 依預設,這個核取方塊未選取。

  3. 選擇性地在 [篩選] 頁面上,對伺服器稽核輸入述詞或 WHERE 子句,以指定 [一般] 頁面上未提供的其他選項。 將述詞包含在括號內,例如 (object_name = 'EmployeesTable')。

  4. 當您完成選取選項之後,按一下 [確定]

若要建立伺服器稽核規格

  1. 在 [物件總管] 中,按一下加號展開 [安全性] 資料夾。

  2. 以滑鼠右鍵按一下 [伺服器稽核規格] 資料夾,然後選取 [新增伺服器稽核規格]

    [建立伺服器稽核規格] 對話方塊有下列選項。

    • 名稱
      伺服器稽核規格的名稱。 當您建立新的伺服器稽核規格時會自動產生這個名稱,但是可加以編輯。

    • 稽核
      現有伺服器稽核的名稱。 請輸入稽核名稱或從清單中選取。

    • 稽核動作類型
      指定要擷取之伺服器層級的稽核動作群組和稽核動作。 如需伺服器層級稽核動作群組和稽核動作的清單以及其所包含的事件描述,請參閱<SQL Server Audit 動作群組和動作>。

    • 物件結構描述
      顯示指定之 [物件名稱] 的結構描述。

    • 物件名稱
      要稽核的物件名稱。 這只適用於稽核動作,不適用於稽核群組。

    • 省略符號 (...)
      開啟 [選取物件] 對話方塊來瀏覽及選取可用的物件 (根據指定的 [稽核動作類型])。

    • 主體名稱
      依據所稽核的物件來篩選稽核的帳戶。

    • 省略符號 (...)
      開啟 [選取物件] 對話方塊來瀏覽及選取可用的物件 (根據指定的 [物件名稱])。

  3. 完成後,請按一下 [確定]

搭配回到頁首連結使用的箭頭圖示[Top]

使用 Transact-SQL

若要建立伺服器稽核

  1. [物件總管] 中,連接到 Database Engine 的執行個體。

  2. 在標準列上,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 [執行]

    -- Creates a server audit called "HIPPA_Audit" with a binary file as the target and no options.
    CREATE SERVER AUDIT HIPAA_Audit
        TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );
    

若要建立伺服器稽核規格

  1. [物件總管] 中,連接到 Database Engine 的執行個體。

  2. 在標準列上,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 [執行]

    /*Creates a server audit specification called "HIPPA_Audit_Specification" that audits failed logins for the SQL Server audit "HIPPA_Audit" created above.
    */
    
    CREATE SERVER AUDIT SPECIFICATION HIPPA_Audit_Specification
    FOR SERVER AUDIT HIPPA_Audit
        ADD (FAILED_LOGIN_GROUP);
    GO
    -- Enables the audit. 
    
    ALTER SERVER AUDIT HIPAA_Audit
    WITH (STATE = ON);
    GO
    

如需詳細資訊,請參閱<CREATE SERVER AUDIT (Transact-SQL)>和<CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)>。

搭配回到頁首連結使用的箭頭圖示[Top]