FC2ブログ
 

Technology へようこそ
ここは技術者の「経験」と「ノウハウ」のブログです


--年--月--日

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


2008年09月16日

Oracle監査

結合テスト中、一瞬にしてデータが消えました。
作業ステータスを管理するテーブル。約30万件。Object Browserで確認
するとテーブルの更新日付のみ変更されています。ということは、
TRUNCATEでばっさり誰かがテーブルのデータを切り捨てたことになります。
(DROP→CREATEでは作成日付も変更され、作成日付=更新日付になる)

幸い、バックアップからデータを戻すことができたため、難は逃れましたが、
犯人は不明。

DBの監査を行うことにしました。
対象はDDL文。つまり今回の事件を教訓として CREATE,ALTER,DROP,
TRUNCATEなどを実行した記録を取ろうというわけです。

systemユーザでログインします。
ログはOS上のファイルとして書き出し、出力フォルダを指定します。

alter system set AUDIT_TRAIL=OS scope=SPFILE;
alter system set AUDIT_FILE_DEST='c:\RMDBS\log' scope=SPFILE;

監査対象ユーザに権限を与えます。

grant audit system to (ユーザ名);

監査を開始。

audit table; -- 監査の開始

監査を止める場合は・・・。

noaudit table; -- 監査を止める

DDL文が発行されるとログ出力されることを確認。アクションが数値でロギングさ
れます。その種類は?

-- 操作の種類がわかる
select * from audit_actions;

つまり、TRUNCATE TABLE なら ACTION=85 というわけです。 [by H.K]


この記事に対するコメント


この記事に対するコメントの投稿














管理者にだけ表示を許可する



この記事に対するトラックバック
トラックバックURL
http://comfair2.blog24.fc2.com/tb.php/389-39718a80
この記事にトラックバックする(FC2ブログユーザー)











上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。