oracle - Oracle 12c 审计跟踪。审计跟踪可以显示登录尝试的密码吗?
问题描述
我有一个应用程序多年来一直成功登录到我们的数据库而没有问题。
密码没变,可以手动登录。
我在数据库中启用了审计跟踪,可以看到登录尝试失败并返回 1017 代码,表明用户名和密码组合无效。
在应用程序中输入的密码是正确的,但仍被数据库拒绝。我通过使用 SQL Developer 登录确认了用户并通过组合。
审计跟踪有什么方法可以显示收到的密码,以便我可以找出密码在应用程序和数据库之间是如何更改的。
除了无效的用户/通行证之外,还有其他导致 1017 的原因吗?
解决方案
不,审计跟踪不显示登录尝试失败的密码。使用审计跟踪,您可以确定尝试登录的机器名称和操作系统用户等内容,但它不会捕获使用的密码。
由于这个应用程序已经登录数据库多年,我猜数据库本身已经更新了很多次,对吗?如果是这样,您是否可能因为在应用程序端使用旧客户端而遇到密码区分大小写问题?如果应用程序使用旧客户端从机器连接,您可能需要查看以下问题:ORA-01017 Invalid Username/Password when connected to 11g database from 9i client
要测试这个假设,您可以尝试使用引号从应用程序端登录以传递凭据。从上面的问题:
oracle9i 默认为大写,因为它不区分大小写。而不是将数据库更改为不敏感,您可以通过将密码粘贴在双引号中来连接,例如 `sqlplus youruser/"Password"@db 以传递混合大小写。
如果不是这种情况,并且您想确定从应用程序传递了什么密码以排除该途径,您可以使用像 Wireshark 这样的工具来监听流量,看看您是否可以嗅出它们是什么凭据使用,假设他们没有使用加密连接。请仅在您对网络具有完全控制权或获得相应权力的许可时才进行探索,因为未经许可使用 Wireshark 等工具可能是非法的或违反您的组织政策。
推荐阅读
- delphi - 如果从 StringList 中删除不是最后一项会出错
- python - 写了一点时间增量函数,并希望将结果捕获为一个 numpy 数组
- javascript - 如何通过 id 删除子对象并使用过滤器检索父对象
- class - 我在开始为我的继承类制作 gui 时遇到问题
- sql - 判断内连接还是左外连接的条件语句?
- c# - Gridview 不会在按钮单击时添加另一行,它只添加一行并且只更新该行,如何解决这个问题?
- python - Pandas 列索引在 iloc 中不同
- java - 如何在android studio中以编程方式更改按钮的宽度
- python - 循环和网络抓取。如何抓取多个元素
- c# - 为什么每次调用都要往返于自省点?