Oracle ORA-28040:没有匹配的身份验证协议
即使遵循以下设置,我仍面临此问题Oracle ORA-28040:没有匹配的身份验证协议,oracle,jdbc,Oracle,Jdbc,即使遵循以下设置,我仍面临此问题 将ojdbc14.jar替换为ojdbc6.jar[也尝试了ojdbc5.jar] 在SQLNET.ora中添加了“SQLNET.ALLOWED\u LOGON\u VERSION\u SERVER=8” 文件[在网络/管理文件夹下] 这是在将DB从11g升级到12c之后发生的。首先,ojdbc驱动程序版本之间的差异取决于您使用的驱动程序的JDK版本。 因此,ojbdc14适用于jdk1.4版,ojdbc5适用于jdk1.5版,依此类推 由于我的环境使用的是JD
ojdbc14.jar
替换为ojdbc6.jar
[也尝试了ojdbc5.jar
]SQLNET.ALLOWED\u LOGON\u VERSION\u SERVER=8
”
文件[在网络/管理文件夹下]这是在将DB从11g升级到12c之后发生的。首先,ojdbc驱动程序版本之间的差异取决于您使用的驱动程序的JDK版本。 因此,
ojbdc14
适用于jdk1.4版,ojdbc5
适用于jdk1.5版,依此类推
由于我的环境使用的是JDK1.7,所以我目前正在使用带有12c数据库版本的ojdbc7.jar
,所以请先升级它
话虽如此,在for Oracle 12c发布页面中,您可以阅读:
目的
设置客户端允许的最小身份验证协议,以及
当服务器充当客户端时,例如通过
连接到Oracle数据库实例时的数据库链接
使用说明
参数名称中的术语版本指的是
身份验证协议,而不是Oracle数据库版本
如果版本不符合或超过此定义的值
参数,则身份验证失败,并显示ORA-28040:不匹配
身份验证协议错误
此属性的默认值为11
允许值为8、10、11、12和12a
建议值为12。试试这个
此外,还有一个有用且有趣的解决方案JDBC驱动程序同时具有Java版本和Oracle版本。这些版本通常是相互关联的,但ojdbc14.jar可能支持比ojdbc6.jar更高版本的Oracle。确保您使用的是最新版本的ojdbc6.jar 运行此命令以查看为哪个版本的Oracle生成驱动程序:
>java -jar ojdbc6.jar -getversion
Oracle 11.2.0.3.0 JDBC 4.0 compiled with JDK6 on Thu_Jun_28_00:38:25_PDT_2012
#Default Connection Properties Resource
#Mon Dec 21 12:38:41 CST 2015
对于SQLNET.ORA更改,为了安全起见,应该重新启动侦听器和数据库。这听起来很极端,但有一些参数可以改变
还要确保您正在修改所有相关的SQLNET.ORA文件。如果数据库的Oracle home与侦听器的Oracle home不同,则应同时修改两者。应使用最新的JDBC精简驱动程序(12.1.0.2)和JDK8。通过此配置,您的驱动程序将支持最新版本的数据库密码验证器,您的问题应该得到解决
ORA-28040: No matching authentication protocol
我在尝试连接一个网络时遇到了类似的问题
32位Oracle11g客户端到64位Oracle12c服务器
然后,我继续将以下内容添加到sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
然后我遇到了以下错误
ORA-01017: invalid username/password: logon denied
将以下内容添加到客户机sqlnet.ora和服务器中,我能够将旧版本的Toad和PL/SQL连接到新的12c服务器
SQLNET.AUTHENTICATION_SERVICES = (NONE)
谢谢你回答Abarisone先生的问题。如前所述,我已经用ojdbc7.jar替换了现有的jar,并更新了sqlnet.ora文件以使用“sqlnet.ALLOWED\u LOGON\u VERSION=12”。已编辑位于“product\11.2.0\client\u 1\network\admin”的sqlnet.ora。然而,我仍然面临着这个问题。在这方面你能帮我吗?