ORA-28040: 没有匹配的身份验证协议异常
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* @author Alan
* @Email no008@foxmail.com
【发布时间】:2021-08-29 00:07:43
【问题描述】:
我正在尝试将我的 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
根据互联网建议,我也尝试编辑我的 *.ora
文件,但它不起作用。
我在 sqlnet.ora
文件中添加了以下 sn-p :
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
在这里我尝试分配 (10,11,12),但它们都不起作用。
谁能帮我解决这个问题?
【问题讨论】:
我删除了 ojdbc14.jar 文件并改用 ojdbc6.jar,它对我有用
【讨论】:
-
在尝试从 pentaho 水壶连接 Oracle 12c 时遇到同样的问题。删除了 ojdbc14.jar 及其完美的工作!
-
至少简要说明为什么这应该会很方便。
-
对我来说,更改为 ojdbc6.jar 或 ojdbc7.jar 仍然失败,因为我一直在不断设置:
oracle.jdbc.thinLogonCapability"="o3"
,您不再需要针对 oracle 12c 执行此操作。希望它可以帮助别人 -
删除 ojdbc14.jar 并使用 ojdbc6.jar 后效果很好
-
@YuriyKravets ojdbc14.jar 中的数字 14 和 ojdbc6.jar 中的数字 6 b> 指的是为它们编写的 JDK 版本。如果您打开 ojdbc14.jar 的 清单文件,它会显示:Specification-Title: "Oracle JDBC driver classes for use with JDK1.4" 同样,ojdbc6.jar 支持 JDK1 .6 实施。
这是我在experts-exchange找到的一些文字:
错误 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: No matching authentication protocol 错误 12.1 Oracle ASM 和 Oracle Grid Infrastructure 环境。
解决方法:在 oracle/network/admin/sqlnet.ora 文件。
【讨论】:
-
仅供参考:这对我有用,不删除 ojdbc14.jar 文件并使用 ojdbc6.jar
-
是的,在我的情况下,这解决了问题,但发生了另一个问题:用户名/密码无效。顺便说一句,我试图从 oracle jdeveloper 10 连接到 oracle 数据库 12c。所以这就是答案:stackoverflow.com/questions/14476875/… 最终不得不:1) 将 SQLNET.ALLOWED_LOGON_VERSION 更改为 8 2) SQLNET.AUTHENTICATION_SERVICES 为 (NONE) 3) ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE 4) ALTER USER XX IDENTIFIED BY PW (重新保存现在我们更改了区分大小写的密码)
-
迟到了,但我也确认了这个修复。我必须设置我的版本 = 8,即使我运行的是 JDBC 11——没有比 8 更新的版本。
-
我正在使用远程数据库服务器,我无法访问机器,我只能使用 SQL Developer 连接到数据库(没有错误),但我的应用程序(部署在 Tomcat 上)抛出此错误。我已更改本地计算机上的设置,但它无法正常工作。我必须修改服务器机器上的设置吗?
这除了在sqlnet.ora中添加以下内容
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
如果您收到“ORA-01017:用户名/密码无效;登录被拒绝”错误,则需要重新创建密码。
【讨论】:
-
如果您收到“ORA-01017:用户名/密码无效;登录被拒绝”错误,那么您需要重新创建密码。这是一个救生员!谢谢
我通过使用 ojdbc8.jar 解决了这个问题。 Oracle 12c 兼容ojdbc8.jar
【讨论】:
我使用的是 eclipse,在尝试了所有其他答案后,它对我不起作用。
最后,对我有用的是将ojdb7.jar
移到构建路径的顶部。当多个 jar 具有冲突的相同类时会发生这种情况。
- 在
Project Explorer
中选择项目- 右击
Project -> Build Path -> Configure Build Path
- 转到
Order and Export
选项卡并选择ojdbc.jar
- 点击按钮
TOP
将其移至顶部
【讨论】:
除了将以下内容添加到sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
我还在客户端和服务器中添加了以下内容,这解决了我的问题
SQLNET.AUTHENTICATION_SERVICES = (NONE)
【讨论】:
非常老的问题,但提供了一些可能对其他人有帮助的附加信息。我也遇到了同样的错误,我将 ojdbc14.jar 与 12.1.0.2 Oracle 数据库一起使用。在 Oracle 官方网页上,此信息列出了哪个版本支持哪些数据库驱动程序。 Here is the link 看来,对于 Oracle 12c 和 Java 7 或 8,正确的版本是 ojdbc7.jar。
在 ojdbc6.jar 中用于 11.2.0.4。
【讨论】:
添加
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
是完美的解决方案 sql.ora 目录 ..\product\12.1.0\dbhome_1\NETWORK\ADMIN
【讨论】:
我的初始错误是:ORA-28040: No matching authentication protocol exception
我的数据库版本是 12.2 (Solaris),客户端版本是 11.2 ( windows)。我在服务器和客户端 sqlnet.ora 中都添加了以下内容
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
连接时,我的用户名和密码无效,因此我在数据库中重新创建了密码(相同的密码),这解决了我的问题。
【讨论】:
虽然在大多数情况下替换 ojdbc 驱动程序 jar 将是解决方案,但我的情况不同。
如果您确定您使用的是正确的 ojdbc 驱动程序。仔细检查您是否真的连接到您认为的数据库。在我的情况下,jdbc 配置(在 Tomcat/conf 中)指向具有不同 Oracle 版本的不同数据库。
【讨论】:
只需安装 ojdbc-full,它包含 12.1.0.1 版本。
【讨论】:
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-07-06 Windows7上完全卸载Oracle 12c操作步骤
2018-07-06 Oracle12c安装和卸载图文教程
2018-07-06 Linux下Oracle 12c的卸载
2018-07-06 TeamLab安装及使用