Database OracleDB インフラ

[Oracle]接続しているDBユーザのOSプロセスIDを取得

投稿日:2017年10月5日 更新日:

OracleのDBユーザのセッション情報を表示するためにはSYS_CONTEXTを利用することが多い。

しかし、SYS_CONTEXT単体だと接続している”OSのプロセスID”を取得することができない。


OSのプロセスIDの取得方法

OSプロセスを取得するSQL

簡単に説明するとv$sessionとv$processを結合します。

取得方法は↓です。

実行ログ

実行ログは↓です。

解説編

v$sessionの列”SID”とSYS_CONTEXT(’USERENV’, 'SID')はイコールである。

接続したセッションの情報を取得したい場合は、

Where句でv$session.SID = SYS_CONTEXT(’USERENV’, 'SID')

としよう。

また基本的にv$sessionはv$XXXXXビューと結合することができます。

スポンサーリンク

スポンサードリンク

応用編

OSのプロセスIDをログオン時記録

↓がログオントリガーを利用した取得方法です。

OSのプロセスID取得ログオントリガー

下のように出力されます。

 

スポンサードリンク

関連記事

-Database, OracleDB, インフラ

Translate »

Copyright© shimidai2100 , 2018 All Rights Reserved.