ORA-28040:没有匹配的认证协议例外是怎样的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (574)

我正在尝试将我的grails项目连接到Windows(8)系统中的Oracle数据库(Oracle 12c)。然而,每当我运行我的应用程序,我得到以下异常:

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-28040: No matching authentication protocol

)

Caused by: java.sql.SQLException: ORA-28040: No matching authentication protocol

我在sqlnet.ora文件中添加了以下代码片段:

SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
提问于
用户回答回答于

我删除了ojdbc14.jar文件,而是使用了ojdbc6.jar,它为我工作。

改变ojdbc6.jarojdbc7.jar仍然失败,因为我一直在不断设置:oracle.jdbc.thinLogonCapability"="o3"你不再需要对付oracle 12c。

用户回答回答于

以下是我交流中找到的一些文字:

错误14575666 在12.1中,SQLNET.ALLOWED_LOGON_VERSION参数的默认值已更新为11.这意味着使用11g之前的JDBC瘦驱动程序的数据库客户端无法向12.1数据库服务器进行身份验证,除非SQLNET.ALLOWED_LOGON_VERSION参数设置为旧的默认值8。 这将导致使用DBCA创建的10.2.0.5 Oracle RAC数据库与ORA-28040一起失败:在12.1 Oracle ASM和Oracle Grid Infrastructure环境中没有匹配的身份验证协议错误。 解决方法:在oracle / network / admin / sqlnet.ora文件中设置SQLNET.ALLOWED_LOGON_VERSION = 8。

扫码关注云+社区

领取腾讯云代金券