在搭建12.2.0版本双节点RAC项目环境以后,测试链接其他客户端连接时出现了登陆的问题,客户端版本10.2.0.1 链接报错如下:
[root@12c bin]# oerr ora 28040
28040, 0000, "No matching authentication protocol"
// *Cause: No acceptible authentication protocol for both client and server
// *Action: Administrator should set SQLNET_ALLOWED_LOGON_VERSION parameter
// on both client and servers to values that matches the minimum
// version supported in the system.
[root@12c bin]# sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 8月 23 08:49:44 2017
Copyright (c) 1982, 2005, Oracle. All rights reserved.
请输入用户名: system@cdb
输入口令:
ERROR:
ORA-28040: 没有匹配的验证协议
按照官方说法在服务端sqlnet.ora下需要添加如下参数,由于客户还有9i的客户端需要连接,这两个参数设置为了9
SQLNET.ALLOWED_LOGON_VERSION_SERVER=9
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=9
注意:参数和等号之间不要有空格,否则有可能参数不生效。
第一个问题,RAC环境下listener用的是grid ,那么此时是不是应该在grid的ORACLE_HOME下修改sqlnet还是在oracle 的ORACLE_HOME下修改?
答案是在oracle 的ORACLE_HOME下修改sqlnet.ora 。如果是新安装的RAC,默认sqlnet.ora文件 是不存在的自己创建一个即可。
修改完毕后不需要重启监听或者数据库。重新登陆,此时出现如下错误。
[root@12c bin]# sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 8月 23 08:57:46 2017
Copyright (c) 1982, 2005, Oracle. All rights reserved.
请输入用户名: system@cdb
输入口令:
ERROR:
ORA-28040: 没有匹配的验证协议
请输入用户名: system@cdb
输入口令:
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
请输入用户名: system/oracle@cdb
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
在原来主机上测试登陆结果如下,可以确认密码没有问题。
连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> alter user system identified by oracle;
用户已更改。
SQL> exit
从 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 断开
[oracle@12cr2 admin]$ vim sqlnet.ora
[oracle@12cr2 admin]$ sqlplus system/oracle
SQL*Plus: Release 12.2.0.1.0 Production on 星期三 8月 23 09:00:32 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
上次成功登录时间: 星期三 8月 23 2017 08:56:50 +08:00
连接到:

在12.2.0版本的RAC环境中,使用10.2.0.1客户端连接时遇到ORA-01017和ORA-28040错误。问题源于sqlnet.ora的配置,需要在oracle ORACLE_HOME下添加SQLNET.ALLOWED_LOGON_VERSION参数。尽管如此,低版本客户端仍无法识别已设置的密码,即使密码正确。解决方案是通过alter user命令重新设置密码,或升级客户端到11g及以上版本以避免不支持的密码规则问题。
最低0.47元/天 解锁文章
1126

被折叠的 条评论
为什么被折叠?



