データベースストアドプロシージャを呼び出しているマシンのトレース方法


  1. セッション情報の監査ログを確認する方法: データベース管理システム(DBMS)がセッション情報を監査ログに記録している場合、このログを調べることでストアドプロシージャの呼び出し元マシンを特定できます。具体的な手順はDBMSによって異なりますが、一般的なSQL文を使用してログをクエリすることで、呼び出し元のIPアドレスやホスト名を取得することができます。

    例(Oracle DBの場合):

    SELECT username, machine, program
    FROM dba_audit_session
    WHERE action_name = 'EXECUTE PROCEDURE' AND obj_name = 'YOUR_PROCEDURE_NAME';
  2. ネットワークパケットキャプチャを使用する方法: ネットワーク上での通信をキャプチャし、ストアドプロシージャの呼び出し元マシンのIPアドレスを特定することができます。Wiresharkなどのネットワークパケットキャプチャツールを使用して、データベースサーバーとクライアント間の通信を監視することができます。

    例:

    • Wiresharkを使用して、データベースサーバーとクライアントの間の通信をキャプチャします。
    • キャプチャデータをフィルタリングし、ストアドプロシージャの呼び出し要求を特定します。
    • パケットのヘッダー情報から、呼び出し元マシンのIPアドレスを取得します。
  3. 例(MySQLの場合):

    SELECT host, user, password
    FROM mysql.user
    WHERE user = 'YOUR_USERNAME';

これらの方法を使用することで、ストアドプロシージャを呼び出しているマシンの情報を特定できます。ただし、セキュリティ上の考慮事項やデータベース管理システムの機能によっては、これらの手法が制限される場合もあります。適切なアクセス権を持つユーザーとして作業を行い、セキュリティポリシーに準拠するように注意してください。