1.創建審核並啓用

創建審核文件的目錄,指定審核文件位置,啓用審核

SQLServer 審計(默認,圖形)_SQL

SQLServer 審計(默認,圖形)_表名_02

SQLServer 審計(默認,圖形)_表名_03

SQLServer 審計(默認,圖形)_SQL_04

2. 創建審核規範並啓用

對數據庫中的某張表做insert 、update 、delete 審計

SQLServer 審計(默認,圖形)_SQL_05

SQLServer 審計(默認,圖形)_ci_06


INSERT INTO dbo.[Order] (UserID, Amount)
VALUES (1, 99.99);
GO

select * from dbo.[Order];

DELETE FROM dbo.[Order]
WHERE OrderID = 1;
GO

DELETE FROM dbo.[Order]
WHERE OrderID = 2;
GO
SELECT 
    event_time AT TIME ZONE 'UTC' AT TIME ZONE 'China Standard Time' AS 本地時間,
    action_id,           -- 操作類型(D/DELETE、I/INSERT、U/UPDATE)
    session_server_principal_name, -- 操作執行者
    schema_name,         -- 表的架構(如 dbo)
    object_name,         -- 被操作的表名(如 Order)
    statement            -- 執行的 SQL 語句(可選,需審計包含語句時才會顯示)
FROM sys.fn_get_audit_file('C:\SQL_Audit_Logs\Audit-server*.sqlaudit', DEFAULT, DEFAULT)
WHERE 
    -- action_id IN ('DL', 'IN', 'UP')  -- 只篩選 DELETE、INSERT、UPDATE 操作
    object_name = 'Order'     -- 只篩選對 Order 表的操作(可根據實際表名調整)
    AND schema_name = 'dbo';      -- 只篩選 dbo 架構下的表(可根據實際架構調整)

SQLServer 審計(默認,圖形)_SQL_07

只記錄執行的SQL語句


對用户登入登出審計

SQLServer 審計(默認,圖形)_SQL_08

SELECT 
    event_time AT TIME ZONE 'UTC' AT TIME ZONE 'China Standard Time' AS 本地時間,
    action_id,                 -- 操作類型代碼(如 'LGI' 對應登錄)
    succeeded,                 -- 1=成功,0=失敗(用於驗證登錄結果)
    session_server_principal_name,  -- 登錄的用户名
    client_ip,         -- 客户端IP地址
    application_name,          -- 客户端應用程序(如 SSMS、應用程序)
    statement,                 -- 相關語句(登錄事件可能為空)
    additional_information     -- 額外信息(如失敗原因)
FROM sys.fn_get_audit_file('C:\SQL_Audit_Logs\Audit-server*.sqlaudit', DEFAULT, DEFAULT)

ORDER BY event_time DESC;

SQLServer 審計(默認,圖形)_ci_09


補充

在 SQL Server 中,服務器審核規範的審核操作類型豐富多樣,以下是主要的類型及解釋:

審核操作類型

解釋

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP

當應用程序角色的密碼被更改時觸發該事件,用於追蹤應用程序角色密碼的變更操作。

AUDIT_CHANGE_GROUP

創建、修改或刪除任何審核或審核規範時引發此事件,可用於監控審核自身的變更。

BACKUP_RESTORE_GROUP

執行備份或還原命令時觸發,用於追蹤數據庫的備份和還原操作。

BATCH_COMPLETED_GROUP

任何批處理文本、存儲過程或事務管理操作執行完成時引發,SQL Server 2022 及以上版本支持,可追蹤批處理執行完成的情況。

BATCH_STARTED_GROUP

任何批處理文本、存儲過程或事務管理操作開始執行時引發,SQL Server 2022 及以上版本支持,用於追蹤批處理開始執行的事件。

BROKER_LOGIN_GROUP

用於報告與 Service Broker 傳輸安全性相關的審核消息,追蹤 Service Broker 的登錄相關事件。

DATABASE_CHANGE_GROUP

創建、更改或刪除數據庫時觸發,用於監控數據庫的創建、修改和刪除操作。

DATABASE_LOGOUT_GROUP

包含的數據庫用户註銷數據庫時引發,追蹤數據庫用户的登出操作。

DATABASE_MIRRORING_LOGIN_GROUP

報告與數據庫鏡像傳輸安全性相關的審核消息,追蹤數據庫鏡像的登錄相關事件。

DATABASE_OBJECT_ACCESS_GROUP

訪問數據庫對象(如消息類型、程序集、協定等)時觸發,可能會產生大量審計記錄,用於監控數據庫對象的訪問情況。

DATABASE_OBJECT_CHANGE_GROUP

對數據庫對象(如架構)執行 CREATE、ALTER 或 DROP 語句時觸發,用於追蹤數據庫對象的創建、修改和刪除操作。

DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP

在數據庫範圍內更改對象所有者時觸發,監控數據庫對象所有權的變更。

DATABASE_OBJECT_PERMISSION_CHANGE_GROUP

對數據庫對象(如程序集、架構)發出 GRANT、REVOKE 或 DENY 語句時觸發,追蹤數據庫對象權限的變更。

DATABASE_OPERATION_GROUP

數據庫中發生操作(如檢查點、訂閲查詢通知等)時觸發,用於監控數據庫的各類操作。

DATABASE_OWNERSHIP_CHANGE_GROUP

數據庫所有權發生變更時觸發,追蹤數據庫所有權的變化。

DATABASE_PERMISSION_CHANGE_GROUP

數據庫級別的權限(如 GRANT、REVOKE、DENY)發生變更時觸發,監控數據庫權限的變化。

DATABASE_PRINCIPAL_CHANGE_GROUP

數據庫主體(如用户、角色)發生創建、修改或刪除時觸發,追蹤數據庫主體的變更。

DATABASE_PRINCIPAL_IMPERSONATION_GROUP

數據庫主體模擬操作發生時觸發,監控數據庫主體的模擬行為。

DATABASEROLEMEMBERCHANGE_GROUP

數據庫角色成員發生變更時觸發,追蹤數據庫角色成員的添加或刪除。

DBCC_GROUP

執行 DBCC 命令時觸發,用於監控 DBCC 命令的執行。

FAILED_DATABASE_AUTHENTICATION_GROUP

主體嘗試登錄數據庫失敗時觸發,追蹤數據庫登錄失敗的事件。

FAILED_LOGIN_GROUP

主體嘗試登錄 SQL Server 失敗時觸發,用於追蹤 SQL Server 登錄失敗的事件。

LOGIN_CHANGE_PASSWORD_GROUP

通過 ALTER LOGIN 語句或 sp_password 存儲過程更改登錄密碼時觸發,追蹤登錄密碼的變更。

LOGOUT_GROUP

主體註銷 SQL Server 時觸發,追蹤 SQL Server 的登出操作。

SCHEMA_OBJECT_ACCESS_GROUP

訪問架構對象時觸發,用於監控架構對象的訪問情況。

SCHEMA_OBJECT_CHANGE_GROUP

對架構對象執行 CREATE、ALTER 或 DROP 語句時觸發,追蹤架構對象的創建、修改和刪除操作。

SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP

架構對象所有權發生變更時觸發,監控架構對象所有權的變化。

SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP

對架構對象發出 GRANT、REVOKE 或 DENY 語句時觸發,追蹤架構對象權限的變更。

SERVER_OBJECT_CHANGE_GROUP

對服務器對象(如數據庫、端點)執行 CREATE、ALTER 或 DROP 語句時觸發,追蹤服務器對象的創建、修改和刪除操作。

SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP

服務器對象所有權發生變更時觸發,監控服務器對象所有權的變化。

SERVER_OBJECT_PERMISSION_CHANGE_GROUP

對服務器對象發出 GRANT、REVOKE 或 DENY 語句時觸發,追蹤服務器對象權限的變更。

SERVER_OPERATION_GROUP

服務器級別的操作發生時觸發,用於監控服務器的各類操作。

SERVER_PERMISSION_CHANGE_GROUP

服務器級別的權限(如 GRANT、REVOKE、DENY)發生變更時觸發,監控服務器權限的變化。

SERVER_PRINCIPAL_CHANGE_GROUP

服務器主體(如登錄名、服務器角色)發生創建、修改或刪除時觸發,追蹤服務器主體的變更。

SERVER_PRINCIPAL_IMPERSONATION_GROUP

服務器主體模擬操作發生時觸發,監控服務器主體的模擬行為。

SERVERROLEMEMBERCHANGE_GROUP

服務器角色成員發生變更時觸發,追蹤服務器角色成員的添加或刪除。

SERVER_STATE_CHANGE_GROUP

服務器狀態發生變更時觸發,用於監控服務器的啓動、停止等狀態變化。

TRACE_CHANGE_GROUP

跟蹤(Trace)發生創建、修改或刪除時觸發,追蹤跟蹤的變更操作。

TRANSACTION_BEGIN_GROUP

事務開始時觸發,用於監控事務的開始操作。

TRANSACTION_COMMIT_GROUP

事務提交時觸發,追蹤事務的提交操作。

TRANSACTION_ROLLBACK_GROUP

事務回滾時觸發,監控事務的回滾操作。

USER_CHANGE_PASSWORD_GROUP

用户密碼發生變更時觸發,追蹤用户密碼的變更操作。

SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP

主體成功登錄數據庫時觸發,追蹤數據庫登錄成功的事件。

SUCCESSFUL_LOGIN_GROUP

主體成功登錄 SQL Server 時觸發,用於追蹤 SQL Server 登錄成功的事件。

在 SQL Server 中,數據庫審核規範的審核操作類型豐富多樣,以下是主要的類型及解釋:

審核操作類型

解釋

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP

應用程序角色密碼被更改時觸發,用於追蹤應用程序角色密碼的變更操作。

AUDIT_CHANGE_GROUP

數據庫審核或審核規範被創建、修改或刪除時觸發,監控審核自身的變更。

BACKUP_RESTORE_GROUP

執行數據庫備份或還原操作時觸發,追蹤數據庫的備份和還原行為。

DATABASE_CHANGE_GROUP

數據庫被創建、修改或刪除時觸發,用於監控數據庫的生命週期變更。

DATABASE_OBJECT_ACCESS_GROUP

訪問數據庫對象(如消息類型、程序集、協定等)時觸發,可監控數據庫對象的訪問情況(注意可能產生大量審計記錄)。

DATABASE_OBJECT_CHANGE_GROUP

對數據庫對象(如架構)執行 CREATE、ALTER 或 DROP 語句時觸發,追蹤數據庫對象的創建、修改和刪除操作。

DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP

數據庫對象所有權發生變更時觸發,監控數據庫對象所有權的變化。

DATABASE_OBJECT_PERMISSION_CHANGE_GROUP

對數據庫對象(如程序集、架構)發出 GRANT、REVOKE 或 DENY 語句時觸發,追蹤數據庫對象權限的變更。

DATABASE_OPERATION_GROUP

數據庫中發生操作(如檢查點、訂閲查詢通知等)時觸發,用於監控數據庫的各類操作。

DATABASE_OWNERSHIP_CHANGE_GROUP

數據庫所有權發生變更時觸發,追蹤數據庫所有權的變化。

DATABASE_PERMISSION_CHANGE_GROUP

數據庫級別的權限(如 GRANT、REVOKE、DENY)發生變更時觸發,監控數據庫權限的變化。

DATABASE_PRINCIPAL_CHANGE_GROUP

數據庫主體(如用户、角色)被創建、修改或刪除時觸發,追蹤數據庫主體的變更。

DATABASE_PRINCIPAL_IMPERSONATION_GROUP

數據庫主體模擬操作發生時觸發,監控數據庫主體的模擬行為。

DATABASEROLEMEMBERCHANGE_GROUP

數據庫角色成員發生變更時觸發,追蹤數據庫角色成員的添加或刪除。

DBCC_GROUP

執行 DBCC 命令時觸發,用於監控 DBCC 命令的執行。

FAILED_DATABASE_AUTHENTICATION_GROUP

主體嘗試登錄數據庫失敗時觸發,追蹤數據庫登錄失敗的事件。

SCHEMA_OBJECT_ACCESS_GROUP

訪問架構對象時觸發,用於監控架構對象的訪問情況。

SCHEMA_OBJECT_CHANGE_GROUP

對架構對象執行 CREATE、ALTER 或 DROP 語句時觸發,追蹤架構對象的創建、修改和刪除操作。

SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP

架構對象所有權發生變更時觸發,監控架構對象所有權的變化。

SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP

對架構對象發出 GRANT、REVOKE 或 DENY 語句時觸發,追蹤架構對象權限的變更。

SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP

主體成功登錄數據庫時觸發,追蹤數據庫登錄成功的事件。

USER_CHANGE_PASSWORD_GROUP

用户密碼發生變更時觸發,追蹤用户密碼的變更操作。

DELETE(針對具體對象)

對指定數據庫對象執行刪除操作時觸發,用於細粒度監控數據刪除行為。

INSERT(針對具體對象)

對指定數據庫對象執行插入操作時觸發,用於細粒度監控數據插入行為。

UPDATE(針對具體對象)

對指定數據庫對象執行更新操作時觸發,用於細粒度監控數據更新行為。