[20140529]11g下引數audit_trail的修改.txt

lfree發表於2014-05-29

[20140529]11g下引數audit_trail的修改.txt

--前一天看了11g下審計的內容,因為要修改引數audit_trail,又遇到一些奇怪的問題,自己做一個記錄。
--主要問題是可能今年要上11G,11G下預設audit_trail=DB,開啟了許多審計,其中比如使用者登入審計可能是不需要的,需要關閉。

--我遇到問題做一個簡單記錄:
SYS@test> @ver

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SYS@test> show parameter service
NAME           TYPE    VALUE
-------------- ------- -------------
service_names  string  test.com

SYS@test> show parameter audit_trail
NAME            TYPE    VALUE
--------------- ------- -------------
audit_trail     string  DB

--可以發現引數這兩個引數都是字元型別。

SYS@test> alter system set audit_trail="db,extended" scope=spfile ;
alter system set audit_trail="db,extended" scope=spfile
*
ERROR at line 1:
ORA-00096: invalid value db,extended for parameter audit_trail, must be from among extended, xml, db_extended, false, true, none, os, db


SYS@test> alter system set audit_trail='db,extended' scope=spfile ;
alter system set audit_trail='db,extended' scope=spfile
*
ERROR at line 1:
ORA-00096: invalid value db,extended for parameter audit_trail, must be from among extended, xml, db_extended, false, true, none, os, db


SYS@test> alter system set service_names='a,b,test.com' scope=memory ;
System altered.

SYS@test> show parameter service
NAME                                 TYPE                                     VALUE
------------------------------------ ---------------------------------------- ---------------
service_names                        string                                   a,b,test.com

--可以發現修改service_names成功,而修改引數audit_trail失敗。

--當然可以修改audit_trail='db_extended'可以。
SYS@test> alter system set audit_trail='db_extended' scope=spfile ;
System altered.


SYS@test> alter system set audit_trail=db,extended scope=spfile ;
System altered.
--昏,不加引號才可以透過,這個行為太怪異了。

--我再來修改service_names引數看看。

SYS@test> alter system set service_names=a,b,test.com scope=memory ;
alter system set service_names=a,b,test.com scope=memory
                                       *
ERROR at line 1:
ORA-00922: missing or invalid option

SYS@test> alter system set service_names="a,b,test.com" scope=memory ;
System altered.

SYS@test> alter system set service_names='a,b,test.com' scope=memory ;
System altered.

SYS@test> alter system set service_names=a,b,test.com scope=memory ;
alter system set service_names=a,b,test.com scope=memory
                                       *
ERROR at line 1:
ORA-00922: missing or invalid option

--oracle修改引數的行為實在是太怪異了。我也測試12c,問題一樣。

重啟看看修改是否生效:

SYS@test> show parameter audit_trail
NAME         TYPE    VALUE
------------ ------- --------------
audit_trail  string  DB, EXTENDED


--另外我看了我的dataguard的audit_trail,即使你spfile檔案設定
$ strings spfiletestdg.ora | grep audit_trail
*.audit_trail='DB_EXTENDED'

--實際上啟動後是
SYS@testdg> show parameter audit_trail

NAME                                 TYPE                                     VALUE
------------------------------------ ---------------------------------------- ------
audit_trail                          string                                   OS

--看來以後要注意這些細節。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-1172182/,如需轉載,請註明出處,否則將追究法律責任。

相關文章