SQL Server 安全篇——SQL Server 审核(2)——审核实操

 

本文属于SQL Server安全专题系列


 接上文:SQL Server 安全篇——SQL Server 审核(1)——概览 ,本文介绍如何创建服务器审核、服务器审核规范(specification)和 数据库审核规范。


创建服务器审核:


可以使用CREATE SERVER AUDIT来创建服务器审核,其可选项有:

服务器审核选项
选项说明
FILEPATH指定审核日志的路径,只对使用了文件目标起效。
MAXSIZE审核文件最大大小,最小限制为2MB。仅对使用了文件目标起效。
MAX_ROLLOVER_FILES当单个审核文件已满,可以循环使用现有文件或者产生新文件。该选项控制在开始循环使用现有文件前最多可以创建多少个新文件。默认为UNLIMITED(不限制),如果为0,则代表只有一个,如果5,代表有6个,仅对使用了文件目标起效。
MAX_FILES是MAX_ROLLOVER_FILES的另一个选项,当文件数到达指定数量时,不循环使用,而是发出ON_FAILLURE中设置的事件响应。仅对使用了文件目标起效。
RESERVE_DISK_SPACE预分配文件空间,仅对文件目标起效。
QUEUE_DELAY  指定审核事件使用同步写还是异步写。如果为0,则同步写,非0为异步写。延时默认值为1000(1秒)。
ON_FAILURE  一旦审核操作失败将会发出事件,可用值有:CONTINUE、SHUTDOWN和FAIL_OPERATION。CONTINUE代表出现异常时继续。FAIL_OPERATION允许发生错误的操作失败但允许其他操作继续。SHUTDOWN强制停止实例,如果该登录名没有此权限,则该函数将失败并将引发错误消息。
AUDIT_GUID    当附加数据库到实例上时,可以通过指定特定的GUID到服务器审核中,从而避免SQL Server针对新库重新产生审核。


另外,使用服务器审核的筛选器可以只收集感兴趣的信息而不用全量收集。这种类似于“去噪”。

 下面演示如何创建一个服务器审核,脚本中演示了创建文件目标,并使用UNLIMITED来不限制文件个数,每个文件大小限制于256MB。

USE Master 
GO 
--创建名为Audit-Test的服务器审核
CREATE SERVER AUDIT [Audit-Test] 
TO FILE		--以文件形式存储
( 
        FILEPATH = 'E:\Audit'			--注意替换路径为实际路径
        ,MAXSIZE = 256 MB					--每个文件最大256MB
        ,MAX_ROLLOVER_FILES = 2147483647	--指定文件数目,2147483647为最高值,只有取消选中“无限制”时才可用
        ,RESERVE_DISK_SPACE = OFF			--不预先分配磁盘空间
) WITH 
( 
        QUEUE_DELAY = 1000		--延时1秒写入
        ,ON_FAILURE = CONTINUE	--如果发生错误,继续进行
) 
WHERE object_name = 'sysadmin' ; --只对对象名为sysadmin的活动进行记录

--记得启用审核
ALTER SERVER AUDIT [Audit-Test] WITH (STATE = ON) ; 


结果如下:





创建服务器审核规范:



 只有先创建服务器审核才能创建审核规范,规范与审核是关联的, 使用CREATE SERVER AUDIT SPECIFICATION 命令来创建服务器审核规范。下表是选项说明:
服务器审核规范选项
参数说明
 audit_specification_name关联到服务器审核的规范名称
audit_name与规范关联的服务器审核名称
 audit_action_group_name 与实例级别的可用审核操作关联的操作组名
STATE定义是否在创建之后运行


下面是演示代码:

CREATE SERVER AUDIT SPECIFICATION [ServerAuditSpecification-Test] --服务器审核规范名
FOR SERVER AUDIT [Audit-Test] --用于关联[Audit-Test]服务器审核
ADD (SERVER_ROLE_MEMBER_CHANGE_GROUP) ; --捕获服务器角色成员变更情况


创建数据库审核规范:


 与服务器审核规范类似,但是数据库审核规范更加复杂,可以指定筛选器,对安全对象或主体进行审核。类似的,使用CREATE DATABASE AUDIT SPECIFICATION命令来创建。选项如下表:


数据库审核规范选项
参数描述
 audit_specification_name数据库审核规范的名称
audit_name 服务器审核关联的名称
action需要审核的操作
 audit_action_group_name数据库层面需要审核的操作组名
class安全对象的类名
securable需要被审核的安全对象
principal需要被审核的安全主体
STATE指定是否创建后运行

下面是演示代码:
USE AdventureWorks2017
GO
--创建数据库审核规范名
CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-AdventureWorks2017] 
FOR SERVER AUDIT [Audit-Test] --关联到服务器审核[Audit-Test]
ADD (DELETE ON OBJECT::Person.Person BY public) --捕获审核public角色成员(即所有用户)发出的对Person.Person表的删除操作
WITH (STATE = ON) ;--创建后运行

 注意数据库审核要在用USE库名来指定数据库,而服务器审核要用USE MASTER。完成后,可以看到如下图所示:



 至此,创建案例已经基本完成,由于组合很多,无法一一演示,读者可以自行尝试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值