Allen 2022-07-23 3911 0 0 0 0

初始化首次测试请使用用户名: scott, 口令: tiger

正在尝试使用以下用户 ID 连接:scott

测试没有成功。

ORA-28040: 没有匹配的验证协议

...

正在尝试使用以下用户 ID 连接:system

测试没有成功。

ORA-12638: 身份证明检索失败

...

初始化首次测试请使用用户名: scott, 口令: tiger

正在尝试使用以下用户 ID 连接:scott

测试没有成功。

ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接

...

C:oracleproduct10.2.0client_1NETWORKADMIN

+++

ORA-12638:身份证明检索失败

本地Sqlplus 连一远程数据库,出现 ORA-12638: 身份证明检索失败,pl/sql developer 也是同样的问题,tnsping 是没有问题的。

找到本地的sqlnet.ora文件,注释掉 SQLNET.AUTHENTICATION_SERVICES= (NTS),

或者把nts 替换为none 即可。

注:SQLNET.AUTHENTICATION_SERVICES 表示oracle将采用何种验证方式,

nts表示采用本地操作系统认证

none表示将采用口令文件方式认证

当然,设定了none后,本地的操作系统认证将不被许可,oracle将采用口令文件认证(此时 remote_login_passwordfile=exclusive)如connect /as sysdba 登录,后报错RA-01031: insufficient privileges,实际上是要你输入sysdba的用户名和密码

(https://www.cnblogs.com/login2012/p/6202729.html

+++

这里要检查几个地方

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:appAdministratorvirtualproduct12.2.0dbhome_1 etworkadmin sqlnet.ora

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

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

保存,然后重启oracle服务就可以了。

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


【版权声明】
本文为原创,遵循CC 4.0 BY-SA版权协议!转载请附上原文出处链接及本声明。
原文链接:https://tdlib.com/am.php?t=jijvtWkDFM4y
No Tags
我也要发一个   ·   返回首页     ·   返回[Oracle]   ·    前一个  ·   下一个
相关内容
未登录,
请先 [ 注册 ] or [ 登录 ]
(一分钟即可完成注册!)
返回首页     ·   返回[Oracle]   ·   返回顶部