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

 

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

 

 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的时候有两个因素需要考虑:
  1. 类型:Windows Application log允许任何授权到这个服务器的Windows用户都可访问,而Windows Security Log会更加安全但是更加复杂。
  2. 大小:审核数据的体积不小,存储在小盘上显然会带来风险。

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会拆成多个记录来存储单一操作。过程如下:
  1. 记录某个操作的statement,该列最大4000字符。
  2. 当statement超过4000字符时,新插入一行数据,除sequence_no递增和statement之外,其他列均重复。
  3. 重复1、2步,直到这个statement记录完毕。
使用sequence_no按顺序连接,并使用event_time、action_id和session_id来搭配标识一个操作。



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




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值