PL/SQL Developer连接数据库提示ORA-12638
使用PL/SQL Developer连接数据库时,提示 “ORA-12638:身份证明检索失败”,如下图:
其实这个问题的发生有段时间了,这个问题感觉很郁闷(操蛋)。我记得是有一天早上来公司开机后就出现这个问题了。当时由于手头工作赶进度,就暂时搁下了这个问题,临时使用了 Navicat 来替代它。
直到本周终于空出了点时间,上网找资料才得以解决。下面将我解决该问题的办法步骤整理如下:
关于PLSQL Developer连接数据库时提示ORA-12638:身份证明检索失败的解决办法
在网上搜索了该问题,大概都说的是NTS验证方式的问题。遂根据网上的说明进行了如下修改:
找到Oracle的安装目录,如:D:\Develop\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN ,在目录中有一个 sqlnet.ora 的文件,用编辑器打开该文件进行修改。
在里面找到如下内容:
SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS, NTS)
将里面的NTS验证方式去掉,修改成这样:
SQLNET.AUTHENTICATION_SERVICES= (BEQ,NONE)
修改完后保存文件。然后就可以使用PLSQL Developer登录了。
说明:如果修改完后还是出现该提示,则需要重新启动Oracle(有时候可能不需要重启)。
原因:这是因为Oracle的高级安全性验证导致, Oracle不能应用OS认证而导致凭证检索失败。我的电脑是域控中,而 NTS 仅仅 是WIndow OS的验证方式。
后记:
SQLNET.AUTHENTICATION_SERVICES 表示oracle使用哪种验证方式,NTS表示采用本地操作系统认证,NONE表示将采用口令文件方式认证。设定了none后,本地的操作系统认证将不被许可,oracle将采用口令文件认证(此时 remote_login_passwordfile=exclusive)如connect /as sysdba 登录,后报错RA-01031: insufficient privileges,实际上是要求你输入sysdba的用户名和密码