我有一个已经成功登录我们数据库多年的应用程序,没有出现任何问题。
密码未更改,我可以手动登录。
我在数据库中启用了审计跟踪,并且可以看到失败的登录尝试,并返回1017的代码,指示无效的用户名和密码组合。
在应用程序中输入的密码是正确的,但仍被数据库拒绝。我通过使用SQL Developer登录来确认用户并通过组合。
是否有任何方法可以使审计跟踪显示收到的密码,以便我可以找出如何在应用程序和数据库之间更改密码。
除了无效的用户/通行证之外,还有其他导致1017的原因吗?
答案 0 :(得分:0)
否,审核跟踪不会显示失败的登录尝试密码。使用审核跟踪,您可以确定诸如计算机名和尝试登录的OS用户之类的信息,但它不会捕获所使用的密码。
由于该应用程序已经登录数据库已有多年了,所以我猜数据库本身已经更新了很多次,对吗?如果是这样,是否可能由于在应用程序端使用了较旧的客户端而导致密码区分大小写的问题?如果应用程序是使用旧客户端从计算机连接的,则您可能需要检查以下问题:ORA-01017 Invalid Username/Password when connecting to 11g database from 9i client
要检验此假设,您可以尝试使用引号传递凭据从应用程序一侧登录。根据以上问题:
oracle9i缺省为大写,因为它不适合大小写 灵敏度。而不是将数据库更改为不敏感,您可以 通过在双引号中粘贴密码来连接,例如`sqlplus youruser /“ Password” @db传递混合大小写。
如果不是这种情况,并且您想确定正在从应用程序传递什么密码以排除该途径,则可以使用Wireshark之类的工具来监听流量,并查看是否可以嗅探出哪些凭据他们正在使用,前提是他们未使用加密连接。仅当您完全控制网络或获得适当权力的许可时,才可以尝试使用此方法,因为这可能是非法的,或者违反您组织的政策,未经许可使用Wireshark等工具。