您的位置:首页 > 数据库 > Oracle

ORA-28040: No matching authentication protocol

2017-11-21 17:29 465 查看
关于错误:

错误描述:本地宿主机win10装的oracle 9i的客户端,通过plsql连接两台linux的虚拟机的oracle集群时(oracle12c
12.1.0.2)报如下错误:



但是通过sqlplus连就没问题:



服务端查询错误码:



针对12c发现是需要配置两个参数:

SQLNET.ALLOWED_LOGON_VERSION_SERVER

SQLNET.ALLOWED_LOGON_VERSION_CLIENT

SQLNET.ALLOWED_LOGON_VERSION_SERVER:控制可以连接到12c数据库的客户端版本(client --->orace 12c db


 

SQLNET.ALLOWED_LOGON_VERSION_CLIENT:控制12c数据库可以连到哪些版本的数据库(orace 12c db --->其它版本的oracle
db),例如:控制通过DB LINK可连接到哪些版本的oracle库。

所以,我这个问题主要需要配置的是SQLNET.ALLOWED_LOGON_VERSION_SERVER。

解决办法:

在集群所有节点上,使用oracle用户登陆

Cd $ORACLE_HOME/network/admin/

如果有sqlnet.ora文件,直接加上下面两段内容:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

如果没有sqlnet.ora,自己新建一个,直接执行:

Vi sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

也是加上这两段内容。

然后需要重新加载配置文件:

Grid用户下,执行:

lsnrctl reload

需要特别注意:

A、必须是oracle用户,然后进入到$ORACLE_HOME/network/admin去修改/新增对应的文件。Grid对应的$ORACLE_HOME/network/admin目录下面也有这个sqlnet.ora文件,但是不需要修改。

B、所有的节点下面都要做,别漏了哦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息