SQL Server 2008稽核操作組和操作

iSQlServer發表於2008-11-25

使用 SQL Server Audit 功能,您可以對伺服器級別和資料庫級別事件組以及單個事件進行稽核。有關詳細資訊,請參閱瞭解 SQL Server 稽核。

SQL Server 稽核包括零個或多個稽核操作專案。這些稽核操作專案可以是一組操作,例如 Server_Object_Change_Group,也可以是單個操作,例如對錶的 SELECT 操作。

注意:
Server_Object_Change_Group 包括對任何伺服器物件(資料庫或端點)的 CREATE、ALTER 和 DROP 操作。
 


稽核可以有以下類別的操作:

伺服器級別。這些操作包括伺服器操作,例如管理更改以及登入和登出操作。

資料庫級別。這些操作包括資料操作語言 (DML) 和資料定義語言 (DDL) 操作。

稽核級別。這些操作包括稽核過程中的操作。

針對 SQL Server 稽核元件執行的某些操作本質上是在特定稽核中進行稽核的,在這些情況下,由於事件發生在父物件上,因此將自動發生稽核事件。

本質上將對下列操作進行稽核:

伺服器稽核狀態更改(將狀態設定為 ON 或 OFF)

本質上將不對下列事件進行稽核:

CREATE SERVER AUDIT SPECIFICATION

ALTER SERVER AUDIT SPECIFICATION

DROP SERVER AUDIT SPECIFICATION

CREATE DATABASE AUDIT SPECIFICATION

ALTER DATABASE AUDIT SPECIFICATION

DROP DATABASE AUDIT SPECIFICATION

最初建立時會禁用所有稽核。

 伺服器級別稽核操作組
伺服器級別稽核操作組是類似於 SQL Server 安全稽核事件類的操作。有關詳細資訊,請參閱 SQL Server 事件類參考。

下表介紹了伺服器級稽核操作組,並提供了適用的等效 SQL Server 事件類。

操作組名稱  說明 
SUCCESSFUL_LOGIN_GROUP
 指示主體已成功登入到 SQL Server。此類中的事件由新連線引發或由連線池中重用的連線引發。等效於 Audit Login 事件類。
 
LOGOUT_GROUP
 指示主體已登出 SQL Server。此類中的事件由新連線引發或由連線池中重用的連線引發。等效於 Audit Logout 事件類。
 
FAILED_LOGIN_GROUP
 指示主體嘗試登入到 SQL Server,但是失敗。此類中的事件由新連線引發或由連線池中重用的連線引發。等效於 Audit Login Failed 事件類。
 
LOGIN_CHANGE_PASSWORD_GROUP
 通過 ALTER LOGIN 語句或 sp_password 儲存過程更改登入密碼時,將引發此事件。等效於 Audit Login Change Password 事件類。
 
APPLICATION_ROLE_CHANGE_PASSWORD_GROUP
 更改應用程式角色的密碼時將引發此事件。等效於 Audit App Role Change Password 事件類。
 
SERVER_ROLE_MEMBER_CHANGE_GROUP
 向固定伺服器角色新增登入名或從中刪除登入名時將引發此事件。此事件由 sp_addsrvrolemember 和 sp_dropsrvrolemember 儲存過程引發。等效於 Audit Add Login to Server Role 事件類。
 
DATABASE_ROLE_MEMBER_CHANGE_GROUP
 向資料庫角色新增登入名或從中刪除登入名時將引發此事件。此事件類由 sp_addrolemember、sp_changegroup 和 sp_droprolemember 儲存過程引發。任何資料庫的任何資料庫角色成員發生更改時,均將引發此事件。等效於 Audit Add Member to DB Role 事件類。
 
BACKUP_RESTORE_GROUP
 發出備份或還原命令時,將引發此事件。等效於 Audit Backup/Restore 事件類。
 
DBCC_GROUP
 主體發出任何 DBCC 命令時,將引發此事件。等效於 Audit DBCC 事件類。
 
SERVER_OPERATION_GROUP
 使用安全稽核操作(如使更改設定、資源、外部訪問或授權)時將引發此事件。等效於 Audit Server Operation 事件類。
 
DATABASE_OPERATION_GROUP
 資料庫中發生操作(如檢查點或訂閱查詢通知)時將引發此事件。對於任何資料庫的任何操作都將引發此事件。等效於 Audit Database Operation 事件類。
 
AUDIT_ CHANGE_GROUP
 建立、修改或刪除任何稽核時,均將引發此事件。建立、修改或刪除任何稽核規範時,均將引發此事件。任何針對某稽核的更改均將在該稽核中稽核。
 
SERVER_STATE_CHANGE_GROUP
 修改 SQL Server 服務狀態時將引發此事件。等效於 Audit Server Starts and Stops 事件類。
 
SERVER_OBJECT_CHANGE_GROUP
 針對伺服器物件執行 CREATE、ALTER 或 DROP 操作時將引發此事件。等效於 Audit Server Object Management 事件類。
 
SERVER_PRINCIPAL_CHANGE_GROUP
 建立、更改或刪除伺服器主體時將引發此事件。等效於 Audit Server Principal Management 事件類。

主體發出 sp_defaultdb 或 sp_defaultlanguage 儲存過程或 ALTER LOGIN 語句時,將引發此事件。等效於 Audit Addlogin 事件類。

呼叫 sp_addlogin 和 sp_droplogin 儲存過程時會引發此事件。還等效於 Audit Login Change Property 事件類。

此事件由 sp_grantlogin、sp_revokelogin 或 sp_denylogin 儲存過程引發。等效於 Audit Login GDR 事件類。
 
DATABASE_CHANGE_GROUP
 建立、更改或刪除資料庫時將引發此事件。建立、更改或刪除任何資料庫時均將引發此事件。等效於 Audit Database Management 事件類。
 
DATABASE_OBJECT_CHANGE_GROUP
 針對資料庫物件(如架構)執行 CREATE、ALTER 或 DROP 語句時將引發此事件。建立、更改或刪除任何資料庫物件時均將引發此事件。

注意:
這可能會導致生成大量稽核記錄。

等效於 Audit Database Object Management 事件類。
 
DATABASE_PRINCIPAL_CHANGE_GROUP
 在資料庫中建立、更改或刪除主體(如使用者)時,將引發此事件。等效於 Audit Database Principal Management 事件類。(還等效於 Audit Add DB Principal 事件類,該事件類針對不推薦使用的 sp_grantdbaccess、sp_revokedbaccess、sp_addPrincipal 和 sp_dropPrincipal 儲存過程時發生。)

使用 sp_addrole 或 sp_droprole 儲存過程新增或刪除資料庫角色時,將引發此事件。建立、更改或刪除資料庫的任何主體時均將引發此事件。等效於 Audit Add Role 事件類。
 
SCHEMA_OBJECT_CHANGE_GROUP
 針對架構執行 CREATE、ALTER 或 DROP 操作時將引發此事件。等效於 Audit Schema Object Management 事件類。

此事件針對架構物件引發。等效於 Audit Object Derived Permission 事件類。

任何資料庫的任何架構發生更改時,均將引發此事件。等效於 Audit Statement Permission 事件類。
 
SERVER_PRINCIPAL_IMPERSONATION_GROUP
 伺服器範圍中發生模擬(如 EXECUTE AS )時將引發此事件。等效於 Audit Server Principal Impersonation 事件類。
 
DATABASE_PRINCIPAL_IMPERSONATION_GROUP
 資料庫範圍記憶體在模擬操作(如 EXECUTE AS 或 SETPRINCIPAL)時將引發此事件。此事件針對任何資料庫中完成的模擬引發。等效於 Audit Database Principal Impersonation 事件類。
 
SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP
 伺服器範圍中的物件的所有者發生更改時將引發此事件。等效於 Audit Server Object Take Ownership 事件類。
 
DATABASE_OWNERSHIP_CHANGE_GROUP
 使用 ALTER AUTHORIZATION 語句更改資料庫的所有者時,將引發此事件,並將檢查執行該操作所需的許可權。伺服器上任意資料庫的任意資料庫所有權發生更改時,均將引發此事件。等效於 Audit Change Database Owner 事件類。
 
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP
 在資料庫範圍內更改物件所有者時,將引發此事件。伺服器上任意資料庫的任意物件所有權發生更改時,均將引發此事件。等效於 Audit Database Object Take Ownership 事件類。
 
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP
 檢查更改架構物件(例如表、過程或函式)的所有者的許可權時,會引發此事件。使用 ALTER AUTHORIZATION 語句指定物件所有者時會引發此事件。伺服器上任意資料庫的任意架構所有權發生更改時,均將引發此事件。等效於 Audit Schema Object Take Ownership 事件類。
 
SERVER_PERMISSION_CHANGE_GROUP
 為獲取伺服器範圍內的許可權(例如,建立登入名)而發出 GRANT、REVOKE 或 DENY 語句時,將引發此事件。等效於 Audit Server Scope GDR 事件類。
 
SERVER_OBJECT_PERMISSION_CHANGE_GROUP
 SQL Server 中的任何主體針對某伺服器物件許可權發出 GRANT、REVOKE、或 DENY 語句時,將引發此事件。等效於 Audit Server Object GDR 事件類。
 
DATABASE_PERMISSION_CHANGE_GROUP
 SQL Server 中的任何主體針對某語句許可權發出 GRANT、REVOKE 或 DENY 語句時均將引發此事件(僅適用於資料庫事件,例如授予對某資料庫的許可權)。

伺服器上任意資料庫的任意資料庫許可權發生更改 (GDR) 時,均將引發此事件。等效於 Audit Database Scope GDR 事件類。
 
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP
 針對資料庫物件(例如,程式集和架構)發出 GRANT、REVOKE 或 DENY 語句時將引發此事件。伺服器上任意資料庫的任意物件許可權發生更改時,均將引發此事件。等效於 Audit Database Object GDR 事件類。
 
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP
 對架構物件執行 GRANT、DENY 或 REVOKE 語句時將引發此事件。等效於 Audit Schema Object GDR 事件類。
 
DATABASE_OBJECT_ACCESS_GROUP
 訪問資料庫物件(如訊息型別、程式集和協定)時將引發此事件。

此事件由對任何資料庫的任何訪問而引發。

注意:
這可能導致生成大量稽核記錄。

等效於 Audit Database Object Access 事件類。
 
SCHEMA_OBJECT_ACCESS_GROUP
 在架構中使用物件許可權時,將引發此事件。等效於 Audit Schema Object Access 事件類。
 
BROKER_CONVERSATION_GROUP
 引發此事件的目的在於報告與 Service Broker 對話安全性相關的稽核訊息。等效於 Audit Broker Conversation 事件類。
 
BROKER_LOGIN_GROUP
 引發此事件的目的在於報告與 Service Broker 傳輸安全性相關的稽核訊息。等效於 Audit Broker Login 事件類。
 
DATABASE_MIRRORING_ACTION_GROUP
 引發此事件的目的在於報告與資料庫映象傳輸安全性相關的稽核訊息。等效於 Audit Database Mirroring Login 事件類。
 
TRACE_CHANGE_GROUP
 對於檢查 ALTER TRACE 許可權的所有語句,都會引發此事件。等效於 Audit Server Alter Trace 事件類。
 

注意事項
伺服器級別操作組涵蓋了整個 SQL Server 例項中的操作。例如,如果將相應操作組新增到伺服器稽核規範中,則將記錄任何資料庫中的任何架構物件訪問檢查。在資料庫稽核規範中,僅記錄該資料庫中的架構物件訪問。

伺服器級別的操作不允許對資料庫級別的操作進行詳細篩選。實現詳細操作篩選需要資料庫級別的稽核,例如,對 Employee 組中登入名的 Customers 表執行的 SELECT 操作進行的稽核。

 資料庫級別稽核操作組
資料庫級別稽核操作組是類似於 SQL Server 安全稽核事件類的操作。有關事件類的詳細資訊,請參閱 SQL Server 事件類參考。

下表介紹了資料庫級別稽核操作組,並提供了適用的等效 SQL Server 事件類。

操作組名稱  說明 
DATABASE_ROLE_MEMBER_CHANGE_GROUP
 向資料庫角色新增登入名或從中刪除登入名時將引發此事件。此事件類與 sp_addrolemember、sp_changegroup 和 sp_droprolemember 儲存過程一起使用。等效於 Audit Add Member to DB Role 事件類。
 
DATABASE_OPERATION_GROUP
 資料庫中發生操作(如檢查點或訂閱查詢通知)時將引發此事件。等效於 Audit Database Operation 事件類。
 
DATABASE_CHANGE_GROUP
 建立、更改或刪除資料庫時將引發此事件。等效於 Audit Database Management 事件類。
 
DATABASE_OBJECT_CHANGE_GROUP
 針對資料庫物件(如架構)執行 CREATE、ALTER 或 DROP 語句時將引發此事件。等效於 Audit Database Object Management 事件類。
 
DATABASE_PRINCIPAL_CHANGE_GROUP
 在資料庫中建立、更改或刪除主體(如使用者)時,將引發此事件。等效於 Audit Database Principal Management 事件類。還等效於 Audit Add DB User 事件類,該事件類針對不推薦使用的 sp_grantdbaccess、sp_revokedbaccess、sp_adduser 和 sp_dropuser 儲存過程發生。

使用不推薦使用的 sp_addrole 和 sp_droprole 儲存過程新增或刪除資料庫角色時,將引發此事件。等效於 Audit Add Role 事件類。
 
SCHEMA_OBJECT_CHANGE_GROUP
 針對架構執行 CREATE、ALTER 或 DROP 操作時將引發此事件。等效於 Audit Schema Object Management 事件類。

此事件針對架構物件引發。等效於 Audit Object Derived Permission 事件類。還等效於 Audit Statement Permission 事件類。
 
DATABASE_PRINCIPAL_IMPERSONATION_GROUP
 資料庫範圍中發生模擬(如 EXECUTE AS 或 SETUSER)時將引發此事件。等效於 Audit Database Principal Impersonation 事件類。
 
DATABASE_OWNERSHIP_CHANGE_GROUP
 使用 ALTER AUTHORIZATION 語句更改資料庫的所有者時,將引發此事件,並將檢查執行該操作所需的許可權。等效於 Audit Change Database Owner 事件類。
 
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP
 資料庫範圍中的物件的所有者發生更改時將引發此事件。等效於 Audit Database Object Take Ownership 事件類。
 
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP
 等效於 Audit Schema Object Take Ownership 事件類。檢查更改架構物件(例如表、過程或函式)的所有者的許可權時,將引發此事件。使用 ALTER AUTHORIZATION 語句指定物件所有者時會引發此事件。
 
DATABASE_PERMISSION_CHANGE_GROUP
 SQL Server 中的任何使用者針對某語句許可權發出 GRANT、REVOKE 或 DENY 語句時均將引發此事件(僅適用於資料庫事件,例如授予對資料庫的許可權)。等效於 Audit Database Scope GDR 事件類。
 
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP
 針對資料庫物件(例如,程式集和架構)發出 GRANT、REVOKE 或 DENY 語句時將引發此事件。等效於 Audit Database Object GDR 事件類。
 
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP
 每次對架構物件發出 GRANT、DENY 或 REVOKE 時,均會引發此事件。等效於 Audit Schema Object GDR 事件類。
 
DATABASE_OBJECT_ACCESS_GROUP
 訪問資料庫物件(如證照和非對稱金鑰)時將引發此事件。等效於 Audit Database Object Access 事件類。
 
SCHEMA_OBJECT_ACCESS_GROUP
 在架構中使用物件許可權時,將引發此事件。等效於 Audit Schema Object Access 事件類。
 

 資料庫級別稽核操作
資料庫級別的操作支援直接對資料庫架構以及架構物件(例如表、檢視、儲存過程、函式、擴充套件儲存過程、佇列、同義詞)進行的特定操作進行稽核。不稽核型別、XML 架構集合、資料庫和架構。架構物件的稽核可以在架構和資料庫上配置,這意味著指定架構或資料庫包含的所有架構物件上的事件都將被稽核。下表介紹了資料庫級別的稽核操作。

操作  說明 
SELECT
 發出 SELECT 語句時將引發此事件。
 
UPDATE
 發出 UPDATE 語句時將引發此事件。
 
INSERT
 發出 INSERT 語句時將引發此事件。
 
DELETE
 發出 DELETE 語句時將引發此事件。
 
EXECUTE
 發出 EXECUTE 語句時將引發此事件。
 
RECEIVE
 發出 RECEIVE 語句時將引發此事件。
 
REFERENCES
 檢查 REFERENCES 許可權時將引發此事件。
 

注意事項
資料庫級別的稽核操作不適用於列。

 稽核級別稽核操作組
您也可以對稽核過程中的操作進行稽核。這些操作可以是伺服器範圍或資料庫範圍的操作。如果在資料庫範圍內,則僅針對資料庫稽核規範而進行。下表介紹了稽核級別的稽核操作組。

操作組名稱  說明 
AUDIT_ CHANGE_GROUP
 發出以下命令之一時將引發此事件:

CREATE SERVER AUDIT

ALTER SERVER AUDIT

DROP SERVER AUDIT

CREATE SERVER AUDIT SPECIFICATION

ALTER SERVER AUDIT SPECIFICATION

DROP SERVER AUDIT SPECIFICATION

CREATE DATABASE AUDIT SPECIFICATION

ALTER DATABASE AUDIT SPECIFICATION

DROP DATABASE AUDIT SPECIFICATION
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-503172/,如需轉載,請註明出處,否則將追究法律責任。

相關文章