建立伺服器稽核和資料庫稽核規格
適用於:SQL Server
本文說明如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 建立伺服器稽核和資料庫稽核規格。
稽核 Microsoft SQL Server 執行個體或 Microsoft SQL Server 資料庫牽涉追蹤及記錄系統所發生事件。 SQL Server Audit 物件會收集所要監視伺服器層級或資料庫層級動作和動作群組的單一執行個體。 此稽核位於 SQL Server 執行個體等級。 每個 SQL Server 執行個體可有多項稽核。 「資料庫層級稽核規格」 物件屬於稽核。 您可以針對每個稽核的每個 SQL Server 資料庫建立一個資料庫稽核規格。 如需詳細資訊,請參閱 SQL Server 稽核 (資料庫引擎)。
限制
資料庫稽核規格是位於給定資料庫內的非安全性實體物件。 資料庫稽核規格在建立之後就會處於停用狀態。
當在使用者資料庫中建立或修改資料庫稽核規格時,請勿在伺服器範圍的物件 (例如系統檢視) 上包含稽核動作。 如果您包含伺服器範圍的物件,則系統會建立稽核。 但是,將不會包含伺服器範圍的物件,也不會傳回任何錯誤。 若要稽核伺服器範圍的物件,請在 master
資料庫中使用資料庫稽核規格。
資料庫稽核規格位於建立稽核所在的資料庫,但是 tempdb
系統資料庫除外。
權限
擁有
ALTER ANY DATABASE AUDIT
權限的使用者可以建立資料庫稽核規格,並將其繫結至任何稽核。建立資料庫稽核規格之後,擁有
CONTROL SERVER
或ALTER ANY DATABASE AUDIT
權限的主體就可以檢視此規格。sysadmin
帳戶也可以加以檢視。
使用 SQL Server Management Studio
建立伺服器稽核
在 [物件總管] 中,展開 [安全性] 資料夾。
以滑鼠右鍵按一下 [稽核] 資料夾,然後選取 [新增稽核] 。 如需詳細資訊,請參閱建立伺服器稽核與伺服器稽核規格。
當完成選取選項時,請選取 [確定] 。
建立資料庫層級的稽核規格
在 [物件總管] 中,展開您要建立稽核規格的資料庫。
展開 [安全性] 資料夾。
以滑鼠右鍵按一下 [資料庫稽核規格] 資料夾,然後選取 [新增資料庫稽核規格] 。
[建立資料庫稽核規格] 對話方塊有下列選項:
名稱
資料庫稽核規格的名稱。 當建立伺服器稽核規格時,系統會自動產生名稱。 此名稱是可編輯的。
稽核
現有伺服器稽核物件的名稱。 請輸入稽核名稱或從清單中選取。
稽核動作類型
指定要擷取之資料庫層級的稽核動作群組和稽核動作。 如需資料庫層級稽核動作群組與稽核動作的清單及其所包含事件之描述,請參閱 SQL Server Audit 動作群組和動作。
物件結構描述
顯示指定之 [物件名稱] 的結構描述。
Object Name
要稽核的物件名稱。 此選項僅適用於稽核動作。 其不適用於稽核群組。
省略符號 (...)
開啟 [選取物件] 對話方塊,如此即可根據指定的 [稽核動作類型] 來瀏覽及選取可用物件。
主體名稱
依據所稽核的物件來篩選稽核的帳戶。
省略符號 (...)
開啟 [選取物件] 對話方塊,如此即可根據指定的 [物件名稱] 來瀏覽及選取可用物件。
當完成選取選項時,請選取 [確定] 。
使用 Transact-SQL
建立伺服器稽核
在物件總管中,連線到資料庫引擎的執行個體。
在標準列上,選取 [新增查詢] 。
將下列範例貼入查詢視窗中,然後選取 [執行] 。
USE master; GO -- Create the server audit. CREATE SERVER AUDIT Payroll_Security_Audit TO FILE (FILEPATH = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA'); GO -- Enable the server audit. ALTER SERVER AUDIT Payroll_Security_Audit WITH (STATE = ON);
建立資料庫層級的稽核規格
在物件總管中,連線到資料庫引擎的執行個體。
在標準列上,選取 [新增查詢] 。
將下列範例貼入查詢視窗中,然後選取 [執行] 。 此範例會建立一個稱為
Audit_Pay_Tables
的資料庫稽核規格。 其可根據上一節中定義的伺服器稽核,針對HumanResources.EmployeePayHistory
資料表以依照dbo
使用者來稽核 SELECT 和 INSERT 陳述式。USE AdventureWorks2022; GO -- Create the database audit specification. CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables FOR SERVER AUDIT Payroll_Security_Audit ADD ( SELECT, INSERT ON HumanResources.EmployeePayHistory BY dbo ) WITH (STATE = ON); GO