如何嗅探Oracle';尝试连接到数据库的凭据?
我有一个遗留应用程序,它连接到已配置的Oracle数据库 它似乎有一些逻辑改变了数据库凭据,因为它无法成功登录到Oracle数据库,而在同一台机器上启动的如何嗅探Oracle';尝试连接到数据库的凭据?,oracle,odbc,legacy,sniffing,Oracle,Odbc,Legacy,Sniffing,我有一个遗留应用程序,它连接到已配置的Oracle数据库 它似乎有一些逻辑改变了数据库凭据,因为它无法成功登录到Oracle数据库,而在同一台机器上启动的sqlplus能够登录 我得到的错误是:[DataDirect][ODBC-Oracle-Wire-Protocol-driver][Oracle]ORA-01017:无效的用户名/密码;拒绝登录 如何找出发送到数据库的数据库用户名和密码是什么 到目前为止,我所尝试的: 已启用对Oracle上失败的登录尝试的审核(审核创建会话,只要不成功)。它
sqlplus
能够登录
我得到的错误是:[DataDirect][ODBC-Oracle-Wire-Protocol-driver][Oracle]ORA-01017:无效的用户名/密码;拒绝登录
如何找出发送到数据库的数据库用户名和密码是什么
到目前为止,我所尝试的:
审核创建会话,只要不成功
)。它不能解决这个问题,因为它只记录用户名(看起来是正确的),而不记录密码netcat
启动服务器。应用程序确实连接到了我的服务器,因此我知道应用程序正在连接到正确的服务器。但是,由于TNS协议非常复杂(需要在客户端和服务器之间交换一系列消息),我希望有一个更简单的方法来实现我想要的,而不必对Oracle进行反向工程并实现我自己的服务器Trace=1
,TraceFile
,tracedell
)。跟踪文件显示了正确的用户名,但显然没有记录密码- 数据库:Oracle 11g
- 应用程序运行于:Solaris
- 应用程序用途:DataDirect ODBC Oracle Wire协议v70
netcat
由于连接在凭据验证阶段失败,最可能的错误源是使用本地化符号作为用户名或密码。DataDirect中列出的Oracle身份验证过程存在一些问题(搜索ORA-01017
)
似乎DataDirect提供了两个独立版本的驱动程序,支持Unicode和不支持Unicode,因此可能的故障点之一是将非Unicode版本的驱动程序连接到Unicode版本的数据库,反之亦然
另外,目前我还没有任何使用DataDirect ODBC驱动程序的经验。因此,这只是关于可能的故障源的建议。您只想知道它提供的密码,以便可以更改数据库中的用户名密码?@FelipeMoreno我不想更改密码,我希望应用程序能够连接到数据库。您可能无法记录发送的实际密码。如果可以的话,这将是一个安全问题。我甚至不相信客户端SQL*Net跟踪会泄露这些信息。您确定问题出在密码上,并且应用程序正在操作您提供的密码吗?您得到的错误是什么?您是否在11g数据库上启用了区分大小写的密码?如果这是一个遗留应用程序,那么编写该应用程序时可能会假定密码不区分大小写。该应用程序会更改凭据吗?你可能“认为”该应用程序正在使用凭据X,但实际上它正在读取不同的cfg文件或类似文件,并传入凭据Y(或者可能是防火墙问题)。你能用这个应用单步调试程序吗?什么语言?@tbone是的,我认为应用程序会更改凭据,因为1)我能够让应用程序连接到我的服务器,因此配置文件是正确的;2)有失败的登录尝试登录到Oracle,确认应用程序能够连接到数据库。我可以使用调试器吗?我想确保在开始调试之前,没有解决此类问题的众所周知的解决方案。现在看来,调试是最好的选择。连接是由ODBC驱动程序建立的,但运行在Solaris上,因此我认为无法使用此Windows特定的ODBC跟踪。