我必须设置
SQLNET.ALLOWED_LOGON_VERSION_SERVER=12a
在我所有的数据库服务器上。
如何检查客户端是否仍在使用旧的身份验证协议?
我知道我可以检查DBA_USERS
旧密码版本。但是,如何检查用户是否实际使用旧密码版本?听众.log?审计追踪?
请建议。
我必须设置
SQLNET.ALLOWED_LOGON_VERSION_SERVER=12a
在我所有的数据库服务器上。
如何检查客户端是否仍在使用旧的身份验证协议?
我知道我可以检查DBA_USERS
旧密码版本。但是,如何检查用户是否实际使用旧密码版本?听众.log?审计追踪?
请建议。
检查这个:https://stackoverflow.com/a/56531594/836215
这将告诉您存储的密码是哪种格式。本文还详细介绍了密码格式。
还有一个视图
V$SESSION_CONNECT_INFO
可以告诉您应用程序使用的客户端软件的版本/种类。如果此视图不包含任何可靠信息,则您的客户端使用了一些非常旧的 JDBC 驱动程序。您需要关心的是客户端驱动程序的版本。PS:此视图还会告诉您客户端是否为会话连接协商了任何加密。
为了满足您的
SQLNET.ALLOWED_LOGON_VERSION_SERVER
值的最低协议要求,用户必须已经使用该 sqlnet 协议版本设置了他们的密码。如果没有,他们将无法对数据库进行身份验证 - 即使他们在旧协议下拥有有效密码 - 并且他们的客户端将返回有关未找到匹配身份验证协议的错误。在这种情况下,他们的密码需要由 DBA 使用较新的协议重置,然后才能连接。在任何情况下,数据库都不允许使用比 sqlnet.ora 中指定的协议更旧的协议,因此本身没有什么可审计的。所有较旧的协议身份验证请求都会被拒绝。