みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Oracle10gサーバに接続してくるクライアント名と参照更新するテーブル名の履歴を取りたい

ユーザーに導入済みのサーバ(Windows2003Server)にOracle10gが
入っています。

仕様改定にて、複数のテーブルの項目の長さを拡張しないと
いけなくなりました。

Oracleユーザは1つしか作っておらず、
色々なシステムが同じユーザー名でログインしてきます。

複数のテーブルの項目の長さを拡張した際に、どれだけの
システムに影響を与えるか知りたく、以下を調査する方法は
ありますでしょうか?

<要件>
1.接続してくるクライアントのコンピュータ名(IPアドレスでも可)の
  履歴を取りたい
2.1のシステムがどのテーブルを参照、更新しているかの履歴を取りたい
3.1、2の履歴を数週間取りたい。
4.有料のソフトはできれば使いたくない

以上、ご教示頂きたく、よろしくお願い致します。

投稿日時 - 2009-06-03 18:20:44

QNo.5014089

困ってます

質問者が選んだベストアンサー

>1.接続してくるクライアントのコンピュータ名(IPアドレスでも可)の履歴を取りたい

Auditで以下の項目は取れます。
USERHOST:クライアントのホスト・マシンの名前

>2.1のシステムがどのテーブルを参照、更新しているかの履歴を取りたい
テーブル単位であれば取れます。カラム単位だと発行したSQLを解析しないと難しいかも。

>3.1、2の履歴を数週間取りたい。
その期間だけAuditを使うしかないでしょう。

>4.有料のソフトはできれば使いたくない
標準のAudit(監査)を使うしかないでしょう。

監査には以下のタイプがありますが、この場合は「スキーマ・オブジェクト監査」になるでしょう。

・文監査
・権限監査
・スキーマ・オブジェクト監査
・ファイングレイン監査

ただし、監査を仕掛けるとパフォーマンスは落ちるので注意しましょう。それと10gR1から10gR2で追加された部分もあるので注意が必要です。

このあたりを参考にしてください。
http://www.insight-tec.com/mailmagazine/ora3/vol163.html

でも、監査はかなり難しいですよ。
テスト環境で十分テストしてから実施してくだい。

投稿日時 - 2009-06-04 12:11:58

お礼

AUDITを試して見ます。
情報ありがとうございました。

投稿日時 - 2009-06-04 15:32:13

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

使った経験はありませんが、ずいぶん前のバージョンから「監査(audit)」という機能が備わっています。
それを使えばできるはずです。

投稿日時 - 2009-06-03 23:08:57

お礼

ありがとうございました。
調べてやってみます。

投稿日時 - 2009-06-04 15:33:18

あなたにオススメの質問