在搭建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月 2