如何解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误的问题

分类:编程技术 时间:2024-02-20 15:46 浏览:0 评论:0
0
本文主要讲解“如何解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误的问题”。有兴趣的朋友不妨看一下。文章介绍的方法简单、快捷、实用。现在就让小编教大家《如何解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误的问题》!

Oracle 11g已经到了生命周期,18c也已经到了生命周期已正式发布。那么安装Oracle 18c后,如果使用早期版本的客户端连接18c,会报如下两个错误:

ORA-28040: NomatchingauthenticationprotocolORA-01017: invalid username/password ;登录被拒绝

它们会相继出现。 ORA-28040错误解决后,会出现ORA-01017错误。在这里我们重现该错误并提供解决方案。

1.问题重现

数据库服务器版本:

[oracle@www.cndba.cn dbs]$ sqlplus /作为 sysdbaSQL*Plus:版本 18.0.0.0.0 - 于 2023 年 8 月 27 日星期一 06:42:49 生产版本 18.3.0.0.0版权所有 (c) 1982, 2023,Oracle。保留所有权利。连接到:Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - ProductionVersion 18.3.0.0.0

Client 11.2.0.4,正常连接:

C:/ Users/Dave>sqlplussystem/oracle@192.168.56.168:1522/daveSQL*Plus:2023 年 8 月 31 日星期五 09:24:53 发布 11.2.0.4.0 版本,版权所有 (c) 1982, 2013,Oracle。保留所有权利。连接到:Oracle Database 18c 企业版发布 18.0.0.0.0 - ProductionSQL>

但 11.2.0.1 不起作用:

D:/instantclient_11>sqlplus 系统/oracle@192.168.56.168:1522/daveSQL*Plus:版本 11.2.0.1.0 于 2023 年 8 月 31 日星期五 10:51:52 发布,版权所有 (c) 1982, 2010,Oracle。保留所有权利。错误:ORA-28040:没有匹配的身份验证协议
2 。处理ORA-28040错误

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

但事实上,根据MOS文档(ID 2111876.1),在Oracle 12c及更高版本中,
SQLNET.ALLOWED_LOGO N_VERSION参数已被弃用,应替换为以下两个参数:
SQLNET.ALLOWED_LOGON_VERSION_SERVER = n
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = n

这里的n默认为11,第一个参数在客户端连接服务器时启用,第二个参数当客户端连接到其他数据库时启用该参数。例如,创建一个数据库链接。

其他可选值如下:



12a适用于 Oracle Database 12c 第 1 版 (12.1) 版本 12.1.0.2 或稍后
12针对 CPUOct2012 及更高版本 Oracle Database 11g au 的关键补丁更新认证协议(推荐)
11Oracle Database 11g 认证协议(默认)
10适用于 Oracle Database 10g 身份验证协议
8适用于 Oracle8i 身份验证协议

此处修改如下:

[oracle@www.cndba.cn admin]$ cat sqlnet.ora # sqlnet.ora 网络配置文件:/u01/app/oracle /product/18.3.0/db_1/network/admin/sqlnet.ora#由Oracle配置工具生成。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 Friday, 8月份31, 14:49: 53 2023版权所有 (c) 1982, 2010, Oracle。保留所有权利。错误:ORA-01017:无效的用户名/密码剑;登录被拒绝
3.处理ORA-01017错误

来自错误信息表明用户名或密码错误。其实用户名和密码没有问题。这里的问题是,我们配置的sqlnet并没有对之前存在的账户生效,而且它们仍然保持之前的兼容性。

SQL> 设置页 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 sysidentified by oracle;User alter.SQL> alter user systemidentified by oracle;用户已更改。

查看密码版本:

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

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

C:/Users/Dave>sqlplus system/oracle@192.168.56.168:1522/daveSQL*Plus:发布 11.2.0.1.0 于 2014 年 8 月 31 日星期五发布:58:35 2023版权所有 (c) 1982, 2010, Oracle。版权所有。连接到:Oracle Database 18c 企业版版本 18.0.0.0.0 - ProductionSQL>C:/Users/Dave>sqlplus sys/oracle@192.168.56.168:1522/dave as sysdbaSQL*Plus:周五发布版本 11.2.0.1.0 2023 年 8 月 31 日 14:58:54 版权所有 (c) 1982, 2010 , Oracle。版权所有。连接到:Oracle Database 18c企业版Release 18.0.0.0.0 - ProductionSQL>

至此,相信大家对《如何解决Oracle低版本问题》有了一个大概的了解n 客户端“连接报告 ORA-28040 和 ORA-01017 错误。”既然有了更深入的了解,不妨做一些实际操作吧!这是网站。更多相关内容,您可以进入相关渠道进行查询。关注我们并继续学习!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何解决Oracle低版本客户端连接报ORA-28040和ORA-01017错误的问题

用户评论