高度セキュリティ設定を維持 を指定すると、パスワード有効期限や
失敗許容回数など、プロファイルが厳格になりセキュリティが強化される。
よって運用ルールに合わせて設定値の見直しを行ったりする。



DBCAの高度セキュリティ設定維持

詳細内容はOracle11gのDBCAで高度セキュリティ設定を維持を選択すると?で前に書いたが、
11gR2からは有無を言わさず必須となった模様。

プロファイル系のセキュリティ設定のみとうっかりスルーしていたが、
監査ログが有効になるのを忘れてはいけなかった(恥)。

監査ログの初期化パラメータ audit_trail を確認すると、 VALUE が DB 。
DB監査が設定されていることが分かる。
ちなみに OS 監査なら VALUE が OS 、未設定なら NONE となる。

SQL> show parameter audit_trail

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

監査ログ(DB)が設定されていると、システム表領域の SYS.AUD$ テーブルに
ログが Insert され続ける。低スペックだったり、こじんまりとした共用環境なんかだと、
パフォーマンス低下や、領域圧迫に繋がる可能性も否定できない。

監査機能そのものは有用だが、そもそも監査ログが必要ない環境も有ると言うわけで、、
ちょっと掃除をしてみる。

監査無効化とデータ削除手順

では本題の、監査設定(AUDIT_TRAIL)の変更と、不要データの削除方法について。

SYS.AUD$ テーブルの件数を確認

$ sqlplus / as sysdba

SQL> select count(*) from AUD$;

  COUNT(*)
----------
     60127

確認すると監査ログは6万件程度。作成間もない環境なので、大した件数ではなかった。
もしバックアップが必要ならこのタイミングで、ダンプを取得しておけばよい。

初期化パラメータ audit_trail を変更する

SQL> alter system set AUDIT_TRAIL = none scope = spfile;

データベースを再起動

SQL> shutdown immediate

$ sqlplus / as sysdba

SQL> startup

初期化パラメータが変更されたことを確認

SQL> show parameter audit_trail

NAME            TYPE   VALUE
--------------- ------ ---------------
audit_trail     string NONE

→ 無効(NONE)となった。

データを削除

truncate table SYS.AUD$;

SYS.AUD$ テーブルの件数

SQL> select count(*) from AUD$;

  COUNT(*)
----------
         0