我有一个旧应用程序,它连接到配置的 Oracle 数据库。
它似乎有一些改变数据库凭据的逻辑,因为它无法成功登录到 Oracle 数据库,而sqlplus
在同一台机器上启动却能够登录。
我得到的错误是:[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-01017: invalid username/password; logon denied
如何找出发送到数据库的数据库用户名和密码是什么?
到目前为止我已经尝试过:
audit create session whenever not successful
在 Oracle ( )上启用了对失败登录尝试的审计。它没有解决问题,因为它只记录用户名,似乎是正确的,没有密码。使用嗅探器窃听运行应用程序的机器和数据库之间的网络流量,但由于 Oracle 的 TNS 协议是加密的,因此并没有多大帮助。
使用端口 X 启动服务器
netcat
,在应用程序配置文件中提供端口 X。该应用程序确实连接到我的服务器,这就是我知道应用程序连接到正确服务器的方式。但是由于 TNS 协议非常复杂(需要在客户端和服务器之间交换一系列消息),我希望有一个更简单的原因来实现我想要的,而无需对 Oracle 进行逆向工程并实现我自己的服务器。启用对 JDBC 驱动程序 (
Trace=1
,TraceFile
,TraceDll
) 的跟踪。跟踪文件显示了正确的用户名,但显然没有记录密码。
我的环境:
- 数据库:Oracle 11g
- 应用程序运行在:Solaris
- 应用用途:DataDirect ODBC Oracle Wire Protocol v70