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