だれかがOracle10gのあるテーブルの金額データをAccessなどの編集ツールで変更してしまい、問題になっているのですが誰が変更したのか突き止める方法はあるのでしょうか?

また、今回はわからないとしても今後、このようなことがないように変更した人を特定するようにしたいのですがどのようにするのがよいでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

今後はデータベース監査証跡を使って当該テーブルのUPDATEの記録を残すと良いですね。


DBAユーザで、
AUDIT UPDATE ON テーブル名;
という感じで監査を有効にし、
監査記録はDBA_AUDIT_TRAILテーブルで確認します。
たまりすぎないように古いレコードを掃除するなどの配慮も必要です。

詳しくは、Oracleドキュメントのセキュリティ・ガイドをごらんください。

参考URL:http://otndnld.oracle.co.jp/document/products/or …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
初めて聞く用語なので調べて検討してみます。
ありがとうございました。

お礼日時:2009/05/17 12:28

自社開発で無い限りDBの変更は難しいかも



プログラム修正が不可能ならトリガーでログ出力させる方法も検討されては?
こちらならプログラムは一切修正しませんし出力テーブルも検索のため2次キーは付けるけど主キー無しの追加オンリーとしてやると容量オーバーしかこける要素がなくなりますし。
まぁ、バッチ等で大量更新される場合はトリガーを停止させるなど設定を工夫する必要はありますが
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうですね、トリガーがよさそうですね。
早速、検討してみます。
ありがとうございました。

お礼日時:2009/05/17 12:25

基本的には自分でログを取るしかありません。



変更者、変更日時等のカラムを取り毎回Updateするか
変更履歴テーブルを取り出力するなどの手法が確実かと

Access等のテーブルビューで自由に変更できるのは問題です。
操作ミスで変更、削除等の問題がありますので

AccessやExcel等で読み込む必要があるなら読込権限のみの別ユーザーを取り
このユーザーで行うのがベターでしょうね

Access等のテーブルビューで名称変更程度はかまわないでしょうが
追加、削除等はそれなりのチェックが必要でしょうからプログラム化するほうがよろしいのでは
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
おっしゃられるとおりなのですが、色々しがらみがあり、テーブル追加や変更、プログラム変更などはできないの現状です。
権限については検討してみます。
ありがとうございました。

お礼日時:2009/05/15 12:02

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング