全息日志子系统功能简介
一、 项目背景
随着计算机和网络的飞速发展,数据库已经不再仅仅是程序员所专有的话题。而Oracle数据库更是凭借其性能卓越,操作方便灵活的特点,在数据库市场中已经占据了一席之地。但是同样随着网络技术的不断进步,数据信息的不断增加,数据安全已经不再是以前的“老生长谈”,也更不是以前书本上那些“可望不可及”的条条框框。不论是政府机关,还是企业用户,都十分关注数据的安全性问题,因为它直接关系到使用者的切身利益。一旦核心数据遭到破坏,将直接导致政府无法继续办公,企业无法正常运营,会给社会、企业和个人带来巨大的损失,后果也是灾难性的。因此,用户迫切希望应用系统能够忠实地记录用户对数据库的每一次修改,删除操作,让数据的变化有据可查。既便于在数据遭到破坏时追究责任,也便于在关键时刻恢复数据。尤其是那些供多用户共同使用的应用系统,这样的要求更加迫切。
二、 解决方案
全息日志子系统是基于Oracle9i的基本功能,使用PL/SQL语言开发的软件。他是一套专用于系统日志监控与数据安全保护的完整解决方案。该系统可以实现表级甚至是列级的细粒度监控配置,还可以查看被监控表/列的任意一次添加、删除、修改操作,管理员可以知道谁,在什么时间,对哪些数据执行了什么样的操作,还可以同时调出旧数据和新数据进行对比查看。如果用户需要的话,还可以针对其中的某一次操作执行恢复操作,使数据恢复到修改之前的状态。
三、 系统功能设计
1) 用户管理功能
全息日志子系统内置了用户管理功能,可以添加和删除用户,还可以修改用户密码。用户信息经加密后存储在全息日志子系统中,通过存储过程对用户进行配置与管理。
2) 监控配置功能
用户可以选择要监控的表/列,日志系统将对这些表/列上的全部添加、编辑和删除操作进行监控与记录。
3) 登录验证与数据保护功能
应用系统连接数据库后,需要通过存储过程将用户名和密码传递给全息日志子系统,系统会根据预先配置好的用户信息确定登录用户是否合法。合法用户可以正常操作被全息日志子系统监控的表/列,但每一次操作都会被系统忠实地记录下来,使数据的修改有据可查。登录失败的用户将不能对被监控表执行添加、编辑和删除操作,保障了系统数据的安全。即便使用第三方工具连接数据库,若不能正确登录,也无法对被监控表中的数据造成破坏。
4) 日志查询功能
管理员可以随时查阅被监控表/列上的添加、编辑和删除操作,察看谁在什么时间对哪些表/列进行了哪些修改。还可以将旧数据与新数据对比查看。对于上层应用程序,只要对日志系统做简单的配置即可实现查询结果的自然语言描述。例如:张三于11月20日15点38分增加了一块新宗地。
5) 数据恢复功能
用户可以针对数据表/列的最后一次修改执行恢复操作,使数据恢复到修改前的状态。
四、系统使用说明
1)安装
在sqlplus中运行程序PL/SQL包,安装全息日志子系统。
在系统表中配置用户要监控的表、列。
以SYSDBA权限登录,运行监控初始化存储过程。
将应用系统的业务层用户名、密码、角色编号通过日志系统的存储过程填入日志系统表。如果有用户维护模块,还应在用户维护模块中对日志系统表内的用户名、密码进行维护。
3)使用方法
应用系统的业务层用户登录时,调用日志系统的存储过程进行登录,如果登录成功,可以对被监控数据执行添加、编辑、修改操作,否则将不能执行以上操作。
五、系统特色
1)高内聚,低耦合
全息日志子系统与应用系统的耦合仅限于用户名、密码、角色编号的维护、更新和登录时的登录操作。
2)安装配置方便
3)实现细粒度审计控制,用户可以将监控限制在某一个表的某一个列上。
2) 直观的日志展示功能
应用系统可以从数据库视图中察看用户操作日志。除提供最基本的简单操作日志(谁在什么时间对哪个表执行了哪些操作)和详细日志(操作时的旧数据和新数据的对比)外,还提供了自然语言描述机制,可以通过简单的配置实现如:“张三于11月20日15点38分在永泰路增加了一块新宗地”这样的日志描述。
3) 数据精细回滚功能
如果安装数据回滚插件,还可以对指定表的最后一次操作执行回滚(与Oracle的事务回滚不是一个概念)操作,使之恢复到修改之前的状态。理论上可以无限次回滚
八风不动原创