千家信息网

怎么解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,本篇内容主要讲解"怎么解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决O
千家信息网最后更新 2025年11月11日怎么解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误

本篇内容主要讲解"怎么解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误"吧!

Oracle 11g 的生命周期已经 ,18c 也已经正式发布,那么在安装Oracle 18c 之后,如果已低版本的客户端来连接18c ,就会报如下两个错误:

ORA-28040: No matching authentication protocolORA-01017: invalid username/password; logon denied

他们会先后出现,当解决ORA-28040错误后,就会出现ORA-01017错误。 这里重现一下错误并提供解决方法。

1. 问题重现

数据库服务端版本:

[oracle@www.cndba.cn dbs]$ sqlplus / as sysdbaSQL*Plus: Release 18.0.0.0.0 - Production on Mon Aug 27 06:42:49 2018Version 18.3.0.0.0Copyright (c) 1982, 2018, Oracle.  All rights reserved.Connected to:Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - ProductionVersion 18.3.0.0.0

客户端11.2.0.4,连接正常:

C:/Users/Dave>sqlplus system/oracle@192.168.56.168:1522/daveSQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 31 09:24:53 2018Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - ProductionSQL>

但是11.2.0.1不行:

D:/instantclient_11>sqlplus system/oracle@192.168.56.168:1522/daveSQL*Plus: Release 11.2.0.1.0 Production on 星期五 8月 31 10:51:52 2018Copyright (c) 1982, 2010, Oracle.  All rights reserved.ERROR:ORA-28040: No matching authentication protocol
2. 处理ORA-28040错误

根据MOS文档 (ID 755605.1),ORA-28040的错误需要在Oracle 用户(非grid用户)的sqlnet.ora 文件中添加:
SQLNET.ALLOWED_LOGON_VERSION=8
或者使用更高版本的客户端。

但实际上,根据MOS文档(ID 2111876.1), 在Oracle 12c 以后的版本,
SQLNET.ALLOWED_LOGON_VERSION 参数已经弃用了,应该使用以下2个参数代替:
SQLNET.ALLOWED_LOGON_VERSION_SERVER = n
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = n

这里的n默认为11. 第一个参数是客户端连接到服务器的时候启作用,第二个是做为客户端去连接其它数据库的时候启作用。例如创建db link。

其他可选值如下:



12afor Oracle Database 12c Release 1 (12.1) release 12.1.0.2 or later
12for the critical patch updates CPUOct2012 and later Oracle Database 11g authentication protocols (recommended)
11for Oracle Database 11g authentication protocols (default)
10for Oracle Database 10g authentication protocols
8for Oracle8i authentication protocol

这里修改如下:

[oracle@www.cndba.cn admin]$ cat sqlnet.ora # sqlnet.ora Network Configuration File: /u01/app/oracle/product/18.3.0/db_1/network/admin/sqlnet.ora# Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8SQLNET.ALLOWED_LOGON_VERSION_SERVER=8[oracle@www.cndba.cn admin]$

修改后即可生效,在连接报错如下:

C:/Users/Dave>sqlplus system/oracle@192.168.56.168:1522/daveSQL*Plus: Release 11.2.0.1.0 Production on 星期五 8月 31 14:49:53 2018Copyright (c) 1982, 2010, Oracle.  All rights reserved.ERROR:ORA-01017: invalid username/password; logon denied
3. 处理ORA-01017错误

从错误提示看是用户名或者密码错误,实际上这里用户名和密码没有问题。 这里的问题是我们配置的sqlnet对之前已经存在的帐号并没有生效,他们还保持在之前的兼容性。

SQL> set pages 100SQL> select username,password_versions from dba_users;USERNAME               PASSWORD_VERSIONS------------------------------ ----------------------------------SYS                       11G 12CSYSTEM                   11G 12COUTLN                   11G 12CSYS$UMF                11G 12CDBSNMP                   11G 12CAPPQOSSYS               11G 12CDBSFWUSER               11G 12CGGSYS                   11G 12C

这里的解决方法就是对用户修改下密码:

SQL> alter user sys identified by oracle;User altered.SQL> alter user system identified by oracle;User altered.

查看密码版本:

SQL> select username,password_versions from dba_users;USERNAME               PASSWORD_VERSIONS------------------------------ ----------------------------------SYS                         11G 12CSYSTEM                   10G 11G 12C

注意这里虽然SYS并没有改变,但是SYSTEM的版本已经加上了10G。 实际上,现在这2个用户都可以连接了:

C:/Users/Dave>sqlplus system/oracle@192.168.56.168:1522/daveSQL*Plus: Release 11.2.0.1.0 Production on 星期五 8月 31 14:58:35 2018Copyright (c) 1982, 2010, Oracle.  All rights reserved.连接到:Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - ProductionSQL>C:/Users/Dave>sqlplus sys/oracle@192.168.56.168:1522/dave as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期五 8月 31 14:58:54 2018Copyright (c) 1982, 2010, Oracle.  All rights reserved.连接到:Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - ProductionSQL>

到此,相信大家对"怎么解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

错误 版本 客户 客户端 用户 实际 密码 星期 参数 实际上 方法 问题 作用 内容 数据 数据库 文档 时候 用户名 处理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 东南大学网络安全等级 章丘夏赘网络技术公司 软件开发的简历模版 软件开发 工程化管理办法 数据库系统采用的安全措施 gps怎么到处数据库 淄博联想服务器代理怎么收费 软件开发专科可以学吗 sql清空列里数据库 数据库的原理及应用东南大学 贵州项目软件开发公司 西藏生鲜配送软件开发 服务器不同品牌可以互传文件吗 什么数据库是5.7以上的 怎么查电脑服务器的ip地址 微信检测到语音服务器连接异常 关于服务器的英语作文 数据库2008误操作还原 两次查询数据库不一样 哈尔滨商业大学网络技术中心 腾讯云服务器管理工具 广西大学网络安全 备份数据库失败是什么原因 我的世界服务器禁止玩家合地皮 网络安全测试神器 国家级线下网络安全竞赛 湖南特色软件开发厂家报价 计算机工学有软件开发吗 高级软件开发工程师考试时间 链接数据库1049异常
0