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

2018-01-24 10:32:14来源:http://blog.csdn.net/dba_huangzj/article/details/79033953作者:黄钊吉的博客人点击

分享

接上文: 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。完成后,可以看到如下图所示:


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


相关文章

    无相关信息

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台