近日,逐步開始課題的研究。具體內容可以參考《我的課題》欄目下的內容,那裡涉及了課題的主要研究內容。
目前仍在探索階段,尤其是對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的高手們,是如何操作的,使之能夠實現動態修改呢,或者有沒有別的方案實現審計,而不是每次都需要重新啟動數據庫……。不吝指教……呵呵