一. SQL Server审计功能介绍
SQL Server审计功能(Audit)是SQL Server 2008之后才有的功能,审计(Audit)用于追踪和记录SQL Server实例,或者单个数据库中发生的事件(Event),审计运作的机制是通过捕获事件(Event),把事件包含的信息写入到事件日志(Event Log)或审计文件(Audit File)中,为review提供最真实详细的数据。
Audit都需要创建一个实例级的“SQL Server审核”,然后可以创建从属于它“服务器审核规范”和“数据库审核规范”。可以理解“SQL Server审核”是审核的顶级容器,这两个“规范”是定义要审核的具体内容。
创建和使用审核的一般过程:
-
创建审核并启用。
-
创建映射到审核的服务器审核规范或数据库审核规范,并启用审核规范。
-
通过使用 Windows“事件查看器”、“日志文件查看器”或 fn_get_audit_file 函数来读取审核事件。
二. 启用审核功能
下面以SQL Server2019为例,启用审核功能,具体配置过程如下:
1.创建审核并启用
“SQL Server 审核” 对象收集单个服务器实例或数据库级操作和操作组以进行监视。 这种审核处于 SQL Server 实例级别。 每个 SQL Server 实例可以具有多个审核。
定义审核时,将指定结果的输出位置,这是审核的目标位置。目标位置支持三种,分别是文件、windows安全事件日志、windows应用程序事件日志。 审核是在 禁用 状态下创建的,因此不会自动审核任何操作。 启用审核后,审核目标将从审核接收数据。
创建审核可以通过SSMS界面化配置,也可通过执行SQL语句实现。
(1)创建一个审核,名为 Audit-logfile,目标位置为文件(审核结果文件存放在c:\dbaudit路径中),通过SSMS界面化配置方法如下:
用管理员账号登录SQL Server管理工具(SQL Server Management Studio),在“安全性”-“审核”菜单上,右键-“新建审核”,如下图:
新建审核界面如下图:
点击“确定”即可创建一个审核,创建后在“安全性”-“审核”下面多了一个名为“Audit-logfile”的审核配置,默认是未启用状态(红色的叉号表示未启用,若想启用审核,可右键点击,选择启用审核即可),如下图:
对应的通过SQL语句方式创建审核的语句如下:
USE [master]
GO
CREATE SERVER AUDIT [Audit-logfile]
TO FILE
( FILEPATH = N'C:\dbaudit\'
,MAXSIZE = 1024 MB
,MAX_FILES = 100
,RESERVE_DISK_SPACE =