打印本文 打印本文 关闭窗口 关闭窗口
审计
作者:武汉SEO闵涛  文章来源:敏韬网  点击数768  更新时间:2009/4/22 23:10:00  文章录入:mintao  责任编辑:mintao

 审计功能是数据库管理系统安全性重要的一部分。通过审计功能,凡是与数据库安全性相关的操作均可被记录下来。只要检测审计记录,系统安全员便可掌握数据库被使用状况。例如,检查库中实体的存取模式,监测指定用户的行为。审计系统可以跟踪用户的全部操作,这也使审计系统具有一种威慑力,提醒用户安全使用数据库。

审计系统的构成

  • Sybsecurity 数据库

  • 存放在Sybsystempocs中的一组系统存储过程

  • Master库中的配置选项

  • 内存审计队列

  • 审计处理程序

Sybsecurity数据库

  Sybsecurity库是SQLServer审计系统的基础,它是由审计系统的安装程序Sybinit 来建立的,除包括Model库中所有表之外,还另有两张系统表。

  • Sysaudits 审计记录表。所有审计信息均被记载在这个表中

  • Sysauditoptions 审计选择设置记录

系统存储过程:

  支持审计系统的操作,设置审计内容及审计功能

Master库的配置选项

  设置内存审计列队大小

内存审计队列

  当定义的审计事件发生时,审计记录首先被放在内存审计队列,在它被审计处理程序存放审计记录之前,将一直存在这里。如果系统发生故障,内存审计队列记录可能丢失。内存审计队列溢出会影响整个系统的性能。当审计队列没有空间时,如果用户执行一个被定义的审计的操作,那么审计处理程序将进入一种睡眠状态,等待有足够的内存空间才运行用户的命令。内存审计队列空间可由sp-configure来设置,参数为audit queue size 。 

审计数据流图

  1. 用户将要在TableA中插入记录,Insert已被定义为审计事件。
  2. 检查操作权限,关于这条命令和处理的信息被记录在内存审计队列。
  3. 审计处理过程被调度的,将内存审计队列的信息写入Sybsecurity库的Sysaudits表中。
  4. 审计信息被存在Sysaudit表中,这些信息随系统运输愈来愈多,如果需要的话,可将这些数据倒到另外一个表中存放起来,或挎贝到磁带上存放。这些工作可以由Threshold Manager来做建议使用insert into …select 来备份ysaudit数据,因为这个操作记log。
  5. 大量的数据存到存贮介质上可以使用Dump或Bulk copy 。

审计级别

  • 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

 

打印本文 打印本文 关闭窗口 关闭窗口