SQL Server 安全篇——SQL Server 审核(1)——概览

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

分享



SQL Server 安全篇——SQL Server 安全模型(1)——安全性主体层级
中提到过,安全分为主动安全和被动安全,前面关于账号权限的算主动安全,那么被动安全指的是记录用户活动以避免不可抵赖性威胁。这个很重要,因为如果攻击是由特权用户发起,那么基本上是很难阻止。SQL Server审核则可以从很大程度上帮助实现被动安全。



但是需要反复提醒,安全是整体的,不仅SQL Server需要有审核,操作系统、网络、域、应用程序都应该尽可能提供足够的审核。


何为审核?


SQL Server审核使得DBA可以对实例层面和数据库层面的活动信息进行细粒度收集。审核日志可以存储为二进制文件、Windows安全事件日志(Windows security log)或者Windows应用程序事件日志(Windows Application Log),审核日志的存储位置称为target。每个审核对应一个target。



SQL Server审核驻留在实例级别,一个实例可以创建多个服务器审核。对于负载很重的环境,多个审计可以通过部署不同的审核目标文件到不同的盘上来分摊负载。



在选择target的时候有两个因素需要考虑:


类型:Windows Application log允许任何授权到这个服务器的Windows用户都可访问,而Windows Security Log会更加安全但是更加复杂。
大小:审核数据的体积不小,存储在小盘上显然会带来风险。
SQL Server 审核操作(Actions)和操作组(Action Groups):


SQL Server审核事件是基于事件类。相关的操作会组合在一个审核操作组中。操作组又映射到SQL Server事件类目录。 当创建一个服务器审核规范(specification)或者数据库审核规范时,可以配置审核规范去捕获审核操作组。



审核组在三种独立层面上可用:Server(及实例级别)、Database和审核级别(audit)。通过不同层级的审核,可以避免特权用户把审核结果也修改甚至删除。



详细的操作组与操作列表及说明可见官方文档:SQL Server 审核操作组与操作
,里面包含了服务器级别、数据库级别和审核级别三部分。数据库级别的组跟实例级别的组有很多是一样的,区别在于数据库级别的仅用于对应数据库,而实例级别的用于实例上所有的库。


SQL Server 审核记录:


详细的记录内容可见:SQL Server审核记录



每个记录具有sequence_no值,同时注意捕获的statement和addtional_information均为nvarchar类型。另外审核捕获的信息并非全部,有些操作不捕获到审核记录中。同时字段存储最多4000个字符,当additional_information和statement超过4000字符时,sequnce_no会拆成多个记录来存储单一操作。过程如下:


记录某个操作的statement,该列最大4000字符。
当statement超过4000字符时,新插入一行数据,除sequence_no递增和statement之外,其他列均重复。
重复1、2步,直到这个statement记录完毕。

使用sequence_no按顺序连接,并使用event_time、action_id和session_id来搭配标识一个操作。


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


相关文章

    无相关信息

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台