审计功能是数据库管理系统安全性重要的一部分。通过审计功能,凡是与数据库安全性相关的操作均可被记录下来。只要检测审计记录,系统安全员便可掌握数据库被使用状况。例如,检查库中实体的存取模式,监测指定用户的行为。审计系统可以跟踪用户的全部操作,这也使审计系统具有一种威慑力,提醒用户安全使用数据库。
审计系统的构成
Sybsecurity 数据库
存放在Sybsystempocs中的一组系统存储过程
Master库中的配置选项
内存审计队列
审计处理程序
Sybsecurity数据库
Sybsecurity库是SQLServer审计系统的基础,它是由审计系统的安装程序Sybinit 来建立的,除包括Model库中所有表之外,还另有两张系统表。
Sysaudits 审计记录表。所有审计信息均被记载在这个表中
Sysauditoptions 审计选择设置记录
系统存储过程:
支持审计系统的操作,设置审计内容及审计功能
Master库的配置选项
设置内存审计列队大小
当定义的审计事件发生时,审计记录首先被放在内存审计队列,在它被审计处理程序存放审计记录之前,将一直存在这里。如果系统发生故障,内存审计队列记录可能丢失。内存审计队列溢出会影响整个系统的性能。当审计队列没有空间时,如果用户执行一个被定义的审计的操作,那么审计处理程序将进入一种睡眠状态,等待有足够的内存空间才运行用户的命令。内存审计队列空间可由sp-configure来设置,参数为audit queue size 。
审计数据流图
审计级别
SQL Server 级 包括如下操作login ,logout ,reboot ,remote Procedue call , fatal error, privileged command.
Database 级 包括操作grant , revoke, truncate table, drop, use
Object 级 包括table/view access , procedure, trigger执行
user 级 包括Table/View access , Command Text
安装审计系统
审计系统由SYBASE安装程序sybinit安装。整个安装过程完成以下操作
执行disk init初始化用户指定使用的设备,并在其上创建Sybsecurity数据库。
运行sp-auditinstall建立一个段空间,并将sysaudit表建在这个段上。
运行installsecurity,建立sysauditoptions 表,建立审计系统存储过程
重新启动SQL Server 。
建议不在Sybsecurity库中建立任何用户表,存贮过程等。因为sysaudits表是相当动态变化的,必须监控其设备的使用情况。
用于审计的系统存储过程
sp-auditdatabase 设置数据库级事件审计
sp-auditobject 设置访问表与视图事件的审计
sp-auditsproc 设置执行系统存储过程与触发事件审计
sp-auditlogin 设置指定用户全部操作的审计
sp-auditoption 设置审计选项
sp-addauditrecord 增加用户定义的审计记录
审计数据管理
记录审计事件的表sysaudits增长很快,对这些记录信息必须做有效的管理,定期将审计记录归档。归档可以由手工操作完成,也可以用系统Threshold Manager来完成。如果用Threshold 那么必须将sysaudit表放在独自的段上。
现提供几种方法处理审计记录信息,用户可根据自己系统需求选择其中之一。
将审计记录拷贝到档案表中存放或直接将数据存放外存介质。
截断sysandits表,不保存审计记录。
将档案表中数据存放于外存介质。
审计记录表sysaudits溢出,会导致以下的问题
审计处理过程会死掉
当前内存审计队列的数据将丢失
用户程序向内存审计队列发送数据时被杀掉
取消审计系统功能
sp-auditoption "enable auditing","off" 停止审计系统工作之后,删除sybsecurity 库 drop database sybsearuity
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18