2016-09-29 11 views
-2

Oracleのローカル・マシンからセッションを検出する方法がある場合は、oracleローカル・セッションの検索方法

V11.2.0のv $ sessionに 'PORT'フィールドがあり、oracle 11.2にアクセスするときに、sqlplusを使用してローカルマシン上のoracle 11.2.0にアクセスし、ポートフィールドが0であることがわかりました。 0の場合、PORTフィールドはリモートtcpポートです。

したがって、ローカルセッションは、PORTフィールドで識別できますが、ローカル接続はtcp経由のローカル接続を除いて127.0.0.1です。

しかし、別の問題は、11.2.0より前のOracleバージョンにv $ session.PORT列がないことです。

ありがとう

+0

'v $ session'には' machine'カラムがあります。十分ではありませんか? – Aleksej

+0

あなたはv $ sessionとv $ instanceに次のように参加できます:select s.machine、s.username、s.sid、s.serial#v $ session s、v $ instance iここでs.machine = i.host_name –

答えて

0

MACHINE、TERMINAL、PROGRAMの各列を使用してください。

MACHINEはローカルホストの名前と一致します。

TERMINALは、pts/1またはWindowsマシン名のようになります。

PROGRAMはsqlplus @(TNS V1-V3)<のようになります。これは重要なことです(J001(W001)などのさまざまな内部要素が表示されるためです)。WHERE USERNAME IS NOTすべてのローカル接続を表示する場合を除き、これらを削除するにはNULLを使用します。

これは良いスタートです。

+0

クライアントが偽のホスト名を送信できるので、MACHINEは信頼できないかもしれませんが、あなたの答えはまさに私が望むものです。 – eastgeek

関連する問題