Oracle デフォルト設定でテーブルがselectされてるかさくっと調査する
とあるテーブルがselectされているか教えてほしいと言われたので、
標準監査の設定をしていなかったが明示的にaudit_trail
をNONE
にしていなければ
11gR2からaudit_trail
がデフォルトではDB
となっている。
確認
>show parameter audit_trail NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_trail string DB
orauser
のtest
テーブルにselect監査を設定する
audit select on orauser.test by access; 監査が成功しました。
数日後DBA_AUDIT_TRAIL
を確認する
select OS_USERNAME,USERNAME,USERHOST,OBJ_NAME,TIMESTAMP,ACTION_NAME from DBA_AUDIT_TRAIL where OBJ_NAME='TEST'; OS_USERNAME -------------------------------------------------------------------------------- USERNAME ------------------------------ USERHOST -------------------------------------------------------------------------------- OBJ_NAME -------------------------------------------------------------------------------- TIMESTAMP ACTION_NAME ------------------- ---------------------------- oracle ORAUSER oracle-host TEST 2015/09/03 13:27:46 SELECT
実行されたSQL文全体を知りたい場合などはaudit_trail
をdb, extended
やxml, extended
に
すれば良いが、インスタンスの再起動が必要となる。
- 監視の確認
>select * from DBA_OBJ_AUDIT_OPTS; OWNER OBJECT_NAME ------------------------------ ------------------------------ OBJECT_TYPE ALT AUD COM DEL GRA IND INS ----------------------- ------- ------- ------- ------- ------- ------- ------- LOC REN SEL UPD REF EXE CRE REA WRI FBK ------- ------- ------- ------- --- ------- ------- ------- ------- ------- ORAUSER TEST TABLE -/- -/- -/- -/- -/- -/- -/- -/- -/- A/A -/- -/- -/- -/- -/- -/- -/-
- 監視の取り消し
NOAUDIT select on orauser.test;