引言:标准SQL与T-sql之间有一定的不同
审计
审计(Audit)用于追踪和记录SQL Server实例或数据库中发生的事件,审计主要包括审计对象(Audit)和审计规范(Audit Specification),创建审计首先需要创建一个SQL Server 实例级的审计对象,然后,创建从属于它的“服务器审计规范”或“数据库审计规范”。审计数据可以输出到审计文件(File)、安全日志(Security Log)和应用程序日志(Application Log)。
启用审计的目的一般是为了监控SQL Server执行的操作,例如,记录什么人在什么时候查询数据、修改数据,登陆SQL Server实例等,由于审计记录的数据有可能很丰富,因此,启用审计可能产生大量的日志数据,占用磁盘的大量空间。审计使用一句话来概括就是:记录谁在什么时候做了什么事,审计对象(Audit)定义:配置数据存在何处,而审计规范(Audit Specification)定义:记录什么事,一旦特定的事件触发,SQL Server引擎就使用审计记录事件发生的现场信息。
创建和使用审计的一般步骤是:
step1:创建服务器级别的审计对象,并启用审计对象;
step2:创建审计规范数据库审计规范或者是服务器审计规范,并映射到审计对象审核,启用审计规范,审计对象开始追踪和记录数据;
step3:查看审计数据,可以通过使用SSMS的”Log Files Viewer“或函数sys.fn_get_audit_file 查看记录的日志数据。
参考文档
(1)创建审核对象
上图所示出现了错误,但是手动添加审核对象是可以的。选择的路径是‘D;\ssms\biao’,下面是文件中的内容.
选择数据库的【安全性】右击【审核】点击新建,即可完成。
【例4.15】
create database audit specification audit_sc
for server audit audit1
add (
update on TEST.SC by public
)
alter database audit specification audit_sc with (state =on )
可以观察到是对于public 在update方面的审计。
使用下面的语句创建对alter的审查,但是是有问题的,在官方文档找了半天也没有找到针对于object 的。
use[master]
create server audit specification audit11
for server audit audit1
add (DATABASE_CHANGE_GROUP )
with (state=on)
--创建了服务器审核规范
预期的结果的是对象类是object,对象架构是TEST对象的名称是SC,主体名是public,结果 完全不是。但我也不知道怎么改,官方文档中提到,DATABASE_CHANGE_GROUP 是数据库级别的,尝试加到审计audit_sc中
--先去掉audit_sc
create database audit specification audit_sc
for server audit audit1
add (DATABASE_CHANGE_GROUP ),
add (
update on TEST.SC by public
)
alter database audit specification audit_sc with (state =on )
【例4.16】
删除,标准的SQL使用noaudit ,虽然T-sql 没有这个关键字但是删除较为简单
alter database audit specification audit_sc with (state =off )
--先禁用审核规范才能删
drop database audit specification audit_sc
最后:
我的天哪,这什么