• ベストアンサー

SQL_Plusでのログ採取について

実現が可能か教えて頂けますでしょうか。 ネットワーク上にOracle(8i)が稼動している端末が100台程あり、 それを1つのPC(Win2000)からSQL_Plusにて接続を行い検索等を行っています。 その1つのPCには複数の人が、同じOracleユーザーを使用し 任意のデータベースへログインしています。 100台のOracleの設定・環境を変更せずに、 何とかPC1台のみの変更で、いつ・誰が・どこへ接続したかというログを 取得したいと考えているのですが、可能でしょうか? もし可能であれば、簡単にできる方法をご教授頂けないでしょうか。

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

  • ベストアンサー
  • GoF
  • ベストアンサー率37% (34/91)
回答No.2

少し面倒なのと #1さんと似たようなものですが、 サイトプロファイル(クライアントの%ORACLE_HOME%/sqlplus/admin/glogin.sql) を使用します。 そこでデータベース固有の情報をSYS_CONTEXT/USERENVなどから取り出し spool & spool offした後で HOSTコマンドでバッチファイルを呼び出して スプールファイルを取り込んでOS固有の情報をくっつけて ログファイルに追記させます。 コンソールへの表示が邪魔ならば echoやfeedbackなどを適宜加えます。 但し、プログラムなどによる異なる接続先への同時多重起動時の動作時は内容を保証できません。

nnuuvv
質問者

お礼

ご意見ありがとうございます。 HOSTコマンドとは気が付きませんでした。 同内容で実現できるか、考えて行きたいと思います。 どうもありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

該当の端末にLogin.sqlを準備し、その中でecho onしてspoolファイルを指定しておけば操作が全部ファイルに出力されるかと。 ただし、SQL*Plusでspool変更するような操作をするとNGですけど。

nnuuvv
質問者

お礼

ご返答ありがとうございます。 Spoolも考えたんですけど、 SQL*PlusでSPOOLも使用すると思うので、 #2さんのHOSTコマンドで実現可能か考えたいと思います。 どちらにしても、一筋縄ではいかないようなので・・。 ご意見、ありがとうございました。

すると、全ての回答が全文表示されます。