読者です 読者をやめる 読者になる 読者になる

kenken0807_DBメモ

つば九郎が好きなDBAです。Oracle Standard Editionでの運用やツールとかとかの備忘録。特に記載がない場合はoracle11gR2です。時々MySQL

Oracle デフォルト設定でテーブルがselectされてるかさくっと調査する

とあるテーブルがselectされているか教えてほしいと言われたので、
標準監査の設定をしていなかったが明示的にaudit_trailNONEにしていなければ
11gR2からaudit_trailがデフォルトではDBとなっている。

確認

>show parameter audit_trail

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_trail                          string      DB

orausertestテーブルに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_traildb, extendedxml, 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;