•  

oracle 连接时出错(ORA-28040:没有匹配的验证协议)

2018-01-17

最近安装的oracle 数据库在本机连接都是正常的,但是远程连接确报 “ORA-28040:没有匹配的验证协议”,错误如下图:

这里要检查几个地方

1)当前oracle允许远程吗?
2)对当前oracle客户端连接的最低版本进行调整。

我们可以根据这两个原则来检查.

1、oracle允许远程吗?

查询参数 REMOTE_LOGIN_PASSWORDFILE 是不是 EXCLUSIVE

SQL> show parameter REMOTE_LOGIN_PASSWORDFILE
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
remote_login_passwordfile            string
EXCLUSIVE
SQL>

如果不是 EXCLUSIVE,则设置为  EXCLUSIVE即可。

2、对当前oracle客户端连接的最低版本进行调整。

打开sqlnet.ora文件,比如我的路径为:

C:\app\Administrator\virtual\product\12.2.0\dbhome_1\network\admin\ sqlnet.ora


在文件里面添加两个参数(我这里允许客户端为8i的就可以连接)

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
保存,然后重启oracle服务就可以了。


注意:有时候设置成功后,使用正确的用户名和密码登录,又出现 “ORA-01017 用户名/口令无效;登录被拒绝

这就奇怪了,为什么本机oracle服务器登录又可以,而远程登录时又出错呢?这个有点抽风,解决办法是对在oracle服务器下重新设置一下密码即可。
通过sqlplus 进入

alter user [username] identified by [password]; 

再重新登录即可。

申明:本文受法律保护,未经作者同意不得用于商业用途,如转载请说明出处!
评论