目的:监控普通用户对数据库的非SELECT操作
操作步骤:
--1. 创建审计,来监控对数据库的所有操作
--GUI操作方法:在数据库实例下--安全性--审计--新建审核
USE [master]
GO
CREATE SERVER AUDIT [AuditLog]
TO FILE
( FILEPATH = N'E:\SQLAuditLog'
,MAXSIZE = 1 GB
,MAX_ROLLOVER_FILES = 2147483647
,RESERVE_DISK_SPACE = OFF
) WITH (QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE)
GO
--完成后在GUI界面右键,启用审核。
--2. 对应数据库下创建审核规范
--GUI操作方法:对应数据库-安全性-数据库审核规范--右键新建数据库审核规范
USE [TESTDB]
GO
CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-20240124-143021]
FOR SERVER AUDIT [AuditLog]
ADD (INSERT, UPDATE, DELETE ON DATABASE::[TESTDB] BY [it]),
ADD (INSERT, UPDATE, DELETE ON DATABASE::[TESTDB] BY [max])
GO
--3. 查询审核日志
--GUI方法:数据库实例-安全性-审核-右键此前创建的审核-查看审核日志
SELECT event_time,action_id,succeeded,session_id,session_server_principal_name,object_name,statement,file_name,audit_file_offset
FROM sys.fn_get_audit_file('E:\AduitLog\Audit-20240119-091132_3B8B4864-F6A0-48A9-9964-58FA24A6E096_0_133501004286830000.sqlaudit',DEFAULT,DEFAULT)
ORDER BY 1 DESC;
代码说明:斜体字可根据实际情况调整
未解决问题:日志中存在sa的相关操作记录,导致日志文件很大。