構成済みの Oracle データベースに接続するレガシー アプリケーションがあります。
sqlplus
同じマシンで起動するとログインできるのに、Oracleデータベースに正常にログインできないため、データベースの資格情報を変更するロジックがあるようです。
私が得ているエラーは次のとおりです。[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-01017: invalid username/password; logon denied
データベースに送信されたデータベースのユーザー名とパスワードを確認するにはどうすればよいですか?
私がこれまでに試したこと:
Oracle で失敗したサインオン試行の監査を有効にしました (
audit create session whenever not successful
)。パスワードなしで正しいと思われるユーザー名のみをログに記録するため、問題は解決しません。スニファーを使用して、アプリケーションを実行しているマシンとデータベースの間のネットワーク トラフィックを盗聴しましたが、Oracle の TNS プロトコルは暗号化されているため、あまり役に立ちませんでした。
netcat
ポート Xを使用してサーバーを起動し、アプリケーション構成ファイルでポート X を指定しました。アプリケーションはサーバーに接続しました。つまり、アプリケーションが正しいサーバーに接続していることがわかります。しかし、TNS プロトコルは非常に複雑であるため (クライアントとサーバー間で一連のメッセージを交換する必要があります)、Oracle をリバース エンジニアリングしたり、独自のサーバーを実装したりすることなく、目的を達成する簡単な理由があることを願っています。JDBC ドライバー (
Trace=1
、TraceFile
、TraceDll
) のトレースを有効にしました。トレース ファイルには正しいユーザー名が表示されますが、明らかにパスワードがログに記録されていません。
私の環境:
- データベース: オラクル 11g
- アプリケーションの実行環境: Solaris
- アプリケーションの使用: DataDirect ODBC Oracle Wire Protocol v70