ORA-28040:没有匹配的身份验证协议异常

Ama*_*ari 78 oracle oracle12c

我正在尝试将我的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
Run Code Online (Sandbox Code Playgroud)

)

SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
Run Code Online (Sandbox Code Playgroud)

根据互联网建议,我也尝试编辑我的 *.ora文件,但它无法正常工作.

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

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
Run Code Online (Sandbox Code Playgroud)

在这里我尝试分配(10,11,12),但它们都没有工作.

有人可以帮我这个吗?

Ama*_*ari 131

我删除了ojdbc14.jar文件并使用了ojdbc6.jar,它对我有用

  • 至少一个简短的解释**为什么**这应该工作将是非常方便的. (14认同)
  • 对我来说,更改为ojdbc6.jar或ojdbc7.jar仍然失败,因为我一直在设置:`oracle.jdbc.thinLogonCapability"="o3"`你不再需要对oracle 12c做.希望它可以帮助别人 (5认同)
  • 尝试从pentaho水壶连接Oracle 12c时遇到同样的问题.删除ojdbc14.jar,它完美的工作! (3认同)
  • 在删除ojdbc14.jar并使用ojdbc6.jar之后,该方法非常完美 (3认同)
  • @YuriyKravets **ojdbc14.jar** 中的数字 **14** 和 **ojdbc6.jar** 中的数字 **6** 是指为其编写的 JDK 版本。如果打开 **ojdbc14.jar 的**清单文件,它会显示:_Specification-Title:“用于 JDK1.4 的 Oracle JDBC 驱动程序类”_ 同样,ojdbc6.jar 支持 JDK1.6 实现。 (2认同)

小智 51

以下是我在专家交流中发现的一些文字:

错误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.

  • 是的,在我的情况下,这解决了问题,但另一个发生:无效的用户名/密码.顺便说一句,我试图从oracle jdeveloper 10连接到oracle数据库12c.所以这给了答案:/sf/ask/1013381281/#14477188最后不得不: 1)将SQLNET.ALLOWED_LOGON_VERSION更改为8 2)SQLNET.AUTHENTICATION_SERVICES为(NONE)3)ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE 4)由PW识别的用户XX(由于我们更改了区分大小写,因此重新保存密码) (3认同)

小智 8

这除了将以下内容添加到 sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
Run Code Online (Sandbox Code Playgroud)

如果您收到“ORA-01017:无效的用户名/密码;登录被拒绝”错误,那么您需要重新创建您的密码。

  • 如果您收到“ORA-01017:无效的用户名/密码;登录被拒绝”错误,则您需要重新创建密码。这是一个救星!谢谢 (2认同)

Sha*_*ndu 7

我通过使用 ojdbc8.jar 解决了这个问题。Oracle 12c 兼容 ojdbc8.jar


San*_*pta 5

我正在使用 eclipse,在尝试了所有其他答案后,它对我不起作用。最后,对我有用的ojdb7.jar是将构建路径移动到顶部。当多个 jar 具有冲突的相同类时会发生这种情况。

  1. 选择项目在 Project Explorer
  2. 右键单击 Project -> Build Path -> Configure Build Path
  3. 转到Order and Export选项卡并选择ojdbc.jar
  4. 单击按钮TOP将其移至顶部