近日,逐步开始课题的研究。具体内容可以参考《我的课题》栏目下的内容,那里涉及了课题的主要研究内容。
目前仍在探索阶段,尤其是对Oracle的认识,也在随着不断地学习在逐步加深。课题的题目是《安全审计技术在电子政务中的应用研究》,其中一个重要的内容就是利用oracle 9i提供的审计功能,来与应用层的审计相配合。
初期的想法,一直想在应用系统层提供一个接口——审计的开/关。即可以允许在应用系统级打开或者关闭数据库的审计功能,但是,尝试了几天,得到的结论似乎是:audit_trail参数,是非动态修改参数,也就是说,通过alter system修改时,只能加上scope=spfile,那么也就是说,如果要开启/关闭审计功能,一定要重启数据库。。。。
如果是这样的话,自然就不能灵活开/关审计功能,也就没办法提供给应用系统层一个真正有价值的开/关接口。因为每次都需要重新启动数据库,这对应用系统的运行是有很大影响的。
下面是我在oracle 10g中试验的结果(因为9i中总是在关闭后再启动的时候出现错误,具体原因未明了……),我想,10g尚且如此,那9i肯定也没戏了……
–先显示一下当前的audit_trail参数值
SQL> show parameter audit_trail
NAME TYPE VALUE
audit_trail string DB
–修改audit_trail参数值
SQL> alter system set audit_trail=’FALSE’;
alter system set audit_trail=’FALSE’
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modifie
SQL> alter system set audit_trail=’FALSE’ scope = both;
alter system set audit_trail=’FALSE’ scope = both
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modifie
–只能修改到spfile
SQL> alter system set audit_trail=’FALSE’ scope=spfile;
System altered.
–显示audit_trail参数值,说明当前实例未更改
SQL> show parameter audit_trail
NAME TYPE VALUE
audit_trail string DB
SQL> shutdown normal
ORA-01031: insufficient privileges
SQL> conn / as sysdba;
Connected.
SQL> shutdown normal;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 144964076 bytes
Database Buffers 25165824 bytes
Redo Buffers 1048576 bytes
Database mounted.
Database opened.
–重新启动后,audit_trail参数值已经更改……
SQL> show parameter audit_trail;
NAME TYPE VALUE
audit_trail string FALSE
这里仅仅对一个审计参数的初始化和修改进行了说明,路过的如果有oracle的高手们,是如何操作的,使之能够实现动态修改呢,或者有没有别的方案实现审计,而不是每次都需要重新启动数据库……。