Sql2008安全审计

 USE master  
GO 
CREATE SERVER AUDIT SrvAudit 
TO FILE (FILEPATH='D:\Audit',MAXSIZE=5 MB) 
WITH (QUEUE_DELAY = 3000)

第一行的CREATE SERVER AUDIT语句仅规定审计名称(如SrvAudit)。第二行的TO 子句确定事件输出时的目标位置。例如,我想将输出结果保存在文件中,所以我必须TO FILE并规定FILEPATH 值。

(如果你将审计数据迁到Application日志或 Security 日志,你就只需要指定日志名选项
 CREATE SERVER AUDIT SrvAudit2 
TO APPLICATION_LOG 
WITH (QUEUE_DELAY = 3000))




你创建SQL Server审计之后,必须创建一个服务器审计规范或者是一个数据库审计规范或者是其中的每个。一个服务器审计规范就是和具体的SQL Server审计相关的一个或多个服务审计。活动组就数据库引擎暴露出来的一组相关的事件,例如,我们在进行安全审计操作时,SERVER_OPERATION_GROUP行动组就出现了,如当用户在改变服务器设置时。你可以在每个审计上只创建一个服务器审计。但是,你可以对审计规范增加多个活动组。创建一个服务器审计规范,你需要在主数据库上运行CREATE SERVER AUDIT SPECIFICATION,如下所示


USE master  
GO 
CREATE SERVER AUDIT SPECIFICATION SrvAuditSpec 
FOR SERVER AUDIT SrvAudit 
ADD (SUCCESSFUL_LOGIN_GROUP),
ADD (FAILED_LOGIN_GROUP) 
WITH (STATE=ON)


第一行CREATE SERVER AUDIT SPECIFICATION语句规定了审计规范名(SrvAuditSpec)。第二行FOR SERVER AUDIT子句指定了与审计规范相关的审计名(SrvAudit)。第三行和第四行为 增加了规范活动组的ADD 子句。在这种情况下,我增加了SUCCESSFUL_LOGIN_GROUP和FAILED_LOGIN_GROUP活动组,跟踪试图登录到SQL Server实例的安全主管。
最后一行 CREATE SERVER AUDIT SPECIFICATION语句为WITH 子句。WITH 子句包括激活规范的在STATE参数。默认值不能激活审计规范(STATE=OFF)。如果你在创建时不能激活审计规范,你就必须过段时间再激活,在你能够审计活动组之前进行激活。



和服务器的审计规范不一样,数据库审计规范是具体针对数据库的。但是它和服务器审计规范相同的是,你可以增加审计活动组,但是它们仅仅针对数据库。此外,你可以给规范增加单独的审计活动。审计活动就是数据库具体的活动,如删除数据或运行存储程序。


创建数据库审计规范,在目标数据库中运行CREATE DATABASE AUDIT SPECIFICATION语句,例如:


USE DataBaseName  
GO 
CREATE DATABASE AUDIT SPECIFICATION DbAuditChina_tour
FOR SERVER AUDIT SrvAudit 
ADD (DATABASE_OBJECT_CHANGE_GROUP),
ADD (SELECT,INSERT, UPDATE,DELETE 
ON OBJECT::DataBaseName.dbo.TableName BY dbo)                              --注意(on object 可以指定到具体的表 如果是on DataBase  则是对数据库中所有的表都起作用)
WITH (STATE=ON)
第一行CREATE DATABASE AUDIT SPECIFICATION语句指定了规范(DbAuditSpec),第二行为FOR SERVER AUDIT 子句,用它可以判断和规范相关的审计。接下来,我增加了一个审计活动组,在这里就是 DATABASE_OBJECT_CHANGE_GROUP。在对ADataBaseName 数据库执行CREATE、ALTER 或DROP语句时就会出现这个活动组。


第二个ADD 子句制定了单独审计活动,而不是一个活动组。这样,审计活动就是SELECT、INSERT、UPDATE和 DELETE。但是你要注意,下面一行包含一个ON子句指定的OBJECT:和dbo安全主管。结果,只要dbo在TableName中查询一个对象或在 DataBaseName 数据库中插入、更新或删除,SQL Server就会将事件记入日志。


最后,CREATE DATABASE AUDIT SPECIFICATION语句中的最后一个子句就是WITH子句。跟上次一样,你可以在操作完之后就激活审计规范或者过一段时间之后再进行激活。

USE master  
GO 
ALTER SERVER AUDIT SrvAudit 
WITH (STATE=ON)

我使用的是ALTER SERVER AUDIT 语句更改我之前创建的SQL Server审计(SrvAudit)。ALTER SERVER AUDIT语句中的WITH子句支持被我设置成ON的STATE参数,SQL Server会审计这些具体事件

查看审计结果

SELECT session_server_principal_name, statement, event_time,action_id
FROM fn_get_audit_file ('D:\Audit\SrvAudit_847358B9-A6B5-4BC5-9F7A-108B994D30C6_0_130393466842410000*',NULL, NULL)
WHERE statement LIKE '%set lock=1%'
order by event_time DESC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值