本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2014 中建立伺服器稽核和資料庫稽核規格。
稽核 SQL Server 或 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許可權或系統管理員帳戶來檢視。
使用 SQL Server Management Studio
若要建立伺服器稽核
在 [物件總管] 中,展開 [安全性] 資料夾。
以滑鼠右鍵按兩下 [稽核] 資料夾,然後選取 [ 新增稽核...]。如需詳細資訊,請參閱 建立伺服器稽核和伺服器稽核規格。
當您完成選取選項之後,按一下 [確定] 。
建立資料庫層級稽核規格
在 [物件總管] 中,展開您要在其中建立稽核規格的資料庫。
展開 [安全性] 資料夾。
以滑鼠右鍵按兩下 [ 資料庫稽核規格] 資料夾,然後選取 [ 新增資料庫稽核規格...]。
[ 建立資料庫稽核規格 ] 對話方塊提供下列選項。
名稱
資料庫稽核規格的名稱。 當您建立新的伺服器稽核規範時,會自動產生這項規範,且可進行編輯。稽核
現有資料庫稽核的名稱。 請輸入稽核名稱或從清單中選取。稽核動作類型
指定要擷取之資料庫層級的稽核動作群組和稽核動作。 如需資料庫層級稽核動作群組和稽核動作的清單,以及其包含之事件的描述,請參閱 SQL Server 稽核動作群組和動作。物件結構描述
顯示指定之 [物件名稱] 的結構描述。物件名稱
要稽核的物件名稱。 這只適用於稽核動作,不適用於稽核群組。省略符號 (...)
開啟 [選取物件] 對話方塊來瀏覽及選取可用的物件 (根據指定的 [稽核動作類型] )。主體名稱
依據所稽核的物件來篩選稽核的帳戶。省略符號 (...)
開啟 [選取物件] 對話方塊來瀏覽及選取可用的物件 (根據指定的 [物件名稱] )。當您完成選取選項時,請按兩下 [ 確定]。
使用 Transact-SQL
若要建立伺服器稽核
在物件總管中,連線到資料庫引擎實例。
在標準列上,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。
USE master ; GO -- Create the server audit. CREATE SERVER AUDIT Payrole_Security_Audit TO FILE ( FILEPATH = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA' ) ; GO -- Enable the server audit. ALTER SERVER AUDIT Payrole_Security_Audit WITH (STATE = ON) ;
建立資料庫層級稽核規格
在物件總管中,連線到資料庫引擎實例。
在標準列上,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會根據上面定義的伺服器稽核,建立名為
Audit_Pay_Tables的資料庫稽核規格,該規格會為HumanResources.EmployeePayHistory表格稽核dbo使用者的 SELECT 和 INSERT 語句。USE AdventureWorks2012 ; GO -- Create the database audit specification. CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables FOR SERVER AUDIT Payrole_Security_Audit ADD (SELECT , INSERT ON HumanResources.EmployeePayHistory BY dbo ) WITH (STATE = ON) ; GO
如需詳細資訊,請參閱 CREATE SERVER AUDIT (Transact-SQL) 和 CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)。