项目场景:
提示:这里简述项目相关背景:
一个客户业务人员在登录ORACLE数据库时出现ORA-12638错误。如下图:
问题描述
提示:这里描述项目中遇到的问题:
从上图可以看出在使用PL/SQL登录数据库时发生的错误,NTS是Windows操作系统登录数据库的验证方式,也可以理解成SQLNET.AUTHENTICATION_SERVICES = (NTS)只对Windows系统有效,这个参数等于NTS的含义是即可以用口令验证,又可以用操作系统验证的方式来登录ORACLE数据库,这个参数等于NONE表示只允许使用口令验证的方式来登录数据库,而一般情况下域用户不能应用操作系统认证而身份证明检索失败。
也有网友介绍可以通过netmgr来关闭ORACLE的高级安全验证。
原因分析:
提示:这里填写问题的分析:
通过查看资料,这是个和ORACLE的高级安全性验证有关,也可以说是和权限有关的错误,原因是由于Oracle不能应用操作系统认证而导致。
解决方案:
提示:这里填写该问题的具体解决方案:
此测试库是本人搭建,是windows环境下的19c数据库,电脑的用户是域用户,而这个问题正好和域用户有关,解决方法是将sqlnet.ora文件里的SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉或者将这个参数改为SQLNET.AUTHENTICATION_SERVICES= (NONE),当然也可以直接把sqlnet.ora文件做备份后删掉。