2024/01/25

SQL Server审计功能使用示例


目的:监控普通用户对数据库的非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的相关操作记录,导致日志文件很大。

没有评论: