利用oracle审计功能来监控测试数据库的变化
来源:互联网 发布:男士美图软件 编辑:程序博客网 时间:2024/05/22 22:09
利用oracle审计功能来监测试环境的变化
做过测试的人都应该会碰到这样的情况:测试发现的bug在开发机器上没有出现,显然这是环境差异的原因。相当多情况下,因为测试使用的数据库结构和开发使用的数据库结构不一致造成的。尤其是一些公司在提交测试版本的时候,注重应用程序的版本提交,往往忽略提交和程序匹配的数据库结构,在这种情况下,如果程序和数据库结构不匹配的话,系统稳定就怪了,就像windows没有对应的注册表一样,能稳定吗?
回到正题,如果采用oracle作为底层数据库的系统,如何避免这种情况呢?其实,Oracle的审计功能除了用于安全性检查之外,放到测试领域则有一个好处,就是监控测试数据库的变化情况。Oracle审计内容很丰富:包括语句审计、对象审计、细粒度审计(FGA),监控数据库环境的变化,只要用到语句审计和对象审计即可。
首先:需要检查数据库服务器是否开启了审计,采用show parameter aud命令。
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter aud
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string F:/APP/ADMINISTRATOR/ADMIN/ORC L/ADUMP
audit_sys_operations boolean FALSE
audit_trail string FALSE
如果audit_trail = FALSE或者none,则表明没有开启审计功能,需要开启审计功能,为了建立数据库环境修改的详细记录,需要将audit_trail=db_extended,这样可以在审计视图(dba_audit_trail)看到详细库结构修改(执行了什么样的SQL语句):
SQL> Alter system set audit_trail=db_extended scope=spfile ;
SQL> shutdown immediate //因为audit_trail是静态参数,所以需要重启oracle实例
SQL> startup open
然后设定要审计的用户和表,如果要审计某个用户修改数据库情况,输入如下语句:
SQL> audit all by test whenever successful ;//意思是只要test用户改动数据库成功的地方,都可以审计到。
上面的all参数是代表审计大部分对象(表、视图、序列)增加、删除,无法对表结构的修改,所以还需要显示的指定表结构的修改。
SQL> audit alter table by test by access whenever successful;
设定完毕,执行测试,如下:
SQL> create table test_table (id number ,name varchar2(20)) ;
表已创建。
SQL> alter table test_table add(shool varchar2(20)) ;
表已更改。
SQL> alter table test_table add(school varchar2(20)) ;
表已更改。
SQL> drop table test_table ;
表已删除。
然后查询oracle审计视图(dba_audit_trail),可以看到数据库结构的详细变化情况,包括表的增加、修改、删除、什么时候结构修改、由那台机器修改都很清楚,如下所示:
如果测试系统中,如果有一些很重要的表(如:数据字典表、权限表、基础配置表等)的修改,会严重影响运行,这些测试环境的变化需要详细跟踪,则需要对重要的表对应启动记录级的审计,
SQL> audit insert,update ,delete on test.test_table by access whenever successful ;
对重要表进行记录级的修改,如下所示:
对记录修改完毕后,这些修改变化可以在审计视图(dba_audit_trail)一一找到,如下所示:
- 利用oracle审计功能来监控测试数据库的变化
- 利用oracle审计功能来监测试环境的变化
- 使用Oracle的审计功能监控数据库中的可疑操作
- 利用Oracle审计功能记录数据库操作
- 利用Oracle Enterprise Manager的扩展监控功能开发MySQL Plugin用于MySQL数据库监控
- [Oracle] 利用自治事务实现审计功能
- [Oracle] 利用自治事务实现审计功能
- 初识ORACLE的审计功能
- 初识ORACLE的审计功能
- 初识ORACLE的审计功能
- 初识ORACLE的审计功能
- 初识ORACLE的审计功能
- oracle审计功能的说明
- 初识ORACLE的审计功能
- 跟踪数据库变化的数据-审计
- 利用oracle发送邮件功能简单监控数据库运行状态
- 审计Oracle数据库的使用
- ORACLE的数据库审计 audit
- 失效模式与效应分析 :Failure Mode and Effect Analysis
- DATETIMELONG
- 电平标准 TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL、RS232介绍
- IE6、IE7、IE8之IE多版本共存的几种方法
- DOS下获得当前文件夹目录的命令是什么?
- 利用oracle审计功能来监控测试数据库的变化
- 面对不断升级的内核,如何学习linux设备驱动
- 解决“您试图从目录中执行CGI、ISAPI 或其他可执行程序...”问题的方法
- 项目开发心得
- FireFox安装插件问题
- Oracle 数据类型分享
- 早该知道的7个JavaScript技巧
- QQREADER39B359E37C979C91
- js控制控件的disable