最近在SQL连接的时候,无缘无故就报ORA-12638错误。应该是权限的问题,但是似乎是哪里都没有进行修改,很费解。到网上搜索了一下,发现这个问题的解决方法很简单,但是主要是需要理解AUTHENTICATION_SERVICES参数的意义,在这里记录一下。
ORA-12638: credential retrieval failed tips
Oracle Error Tips by Stephanie F.
The Oracle docs note this on the ora-12638 error:
ORA-12638: Credential retrieval failed
Cause: The authentication service failed to retrieve the credentials of a user.
Action: Enable tracing to determine the exact error.
On the Oracle Technology Network
Forums, a user is able to successfully resolve ORA-12638 after some help
from repliers. The original question was referring to a problem
installing Oracle Designer, in which the user was thrown ORA-12638, when
testing the connection, before the installation had even finished.
A replier pointed out to the user that
ORA-12638 is "an Oracle database error, indicating that the Designer
client was not able to connect to the database."
Though sometimes ORA-12638 can be
resolved by restarting the database services in cases where Oracle on
Windows is being used, although for this user it was not helpful.
However, the following direction was given, and once administered, was a successful resolution to ORA-12638:
Please check the sqlnet.ora file. Change the following entry and try, this will work.
Original Entry - SQLNET.AUTHENTICATION_SERVICES= (NTS)
Modified Entry - SQLNET.AUTHENTICATION_SERVICES= (NONE)
从含义上来说,AUTHENTICATION_SERVICES= (NTS)
该参数值仅对Windows有用,且表示即可以用口令验证,又可以用OS验证来登录Oracle,而(NONE)仅支持口令验证。但是为什么设置为NTS
时会造成登录错误,这个问题就比较复杂了,可以看一下以下这篇博客的论述:
*******************************************************************
前段时间在2003上装测试数据库, 有同事在连接时说报此错误, 我大致观察揣摩的一下,发现一时间无法找到答案,
之后发现把数据库的SQLNET.ORA文件中的此项SQLNET.AUTHENTICATION_SERVICES
注释掉即可克服此错误,但具体原因也说不清楚,没解决此问题,心里一直疙瘩着;前两天想起此问题,用GOOGLE搜索了一下,在ITPUB
上发现一篇文章,说是把客户端的SQLNET.ORA文件给删除即可,试了一下,果真如此。但文章中的那人也解释不清楚原因,后上METALINK
问,ORACLE的技术人员给了两篇文章让我先阅读。看完后作测试,才知道,对NTS的认证方式又多了一层了解。
ora-12638 错误的剖析
Site(A, Server) Windows 2003(已成为域控制器), oracle9206(opatch5)
Site(B, Client) windows 环境(2000,2003),oracle 数据库或客户端
Site(A),Site(B) 的oraclenetworkadmin目录下都有文件sqlnet.ora
该文件中都有这一项 SQLNET.AUTHENTICATION_SERVICES= (NTS)
现象1、当Site(B)以域domain (此域不同于site(A)的域)身份登录机器时,并且Site(A),Site(B) 中的sqlnet.ora 都有这一项 SQLNET.AUTHENTICATION_SERVICES 时,则会出现:
SQL> connect
scott/1@lenovo
ERROR:
ORA-12638: Credential retrieval failed
Warning: You are no longer connected to ORACLE.
SQL>
现象2、此时,若把客户端
Site(B) 的 sqlnet.ora文件中的这一项 SQLNET.AUTHENTICATION_SERVICES
还是被注释掉#SQLNET.AUTHENTICATION_SERVICES= (NTS) 或
SQLNET.AUTHENTICATION_SERVICES= (NONE), 则均可以正常连接数据库
现象3、当客户端Site(B)以本
机身份登录时,则不论 Site(B) 的 sqlnet.ora文件中的这一项 SQLNET.AUTHENTICATION_SERVICES =
(NTS) 还是被注释掉#SQLNET.AUTHENTICATION_SERVICES= (NTS) 或
SQLNET.AUTHENTICATION_SERVICES= (NONE), 均可以正常连接数据库
原因:Site(A)是域控制器(vsts.com),若Site(B)也以域(domain)身份登录机器,并且Site(A),Site(B)都采用操作系统认证(NTS)方式,则需要双方建立信任关系,要不就一方不采用(NTS)认证。如:
SQLNET.AUTHENTICATION_SERVICES=NONE 或#SQLNET.AUTHENTICATION_SERVICES=***
Oracle 解释如下:
Either create trust between the
two domains or change the client or server
SQLNET.AUTHENTICATION_SERVICES such that NTS in not negotiated in the
connection handshake. NTS is only negotiated if both client and server
have SQLNET.AUTHENTICATION_SERVICES set to NTS.
i.e. SQLNET.AUTHENTICATION_SERVICES=NONE
解决方法:
1、对两个域建信任关系(没测试此方法)。
2、数据库或客户端的sqlnet.ora 中的 SQLNET.AUTHENTICATION_SERVICES=NONE或被注释掉 #SQLNET.AUTHENTICATION_SERVICES。
鉴与生产环境,无法对两个域建信任关系后作测试,无奈!
原帖地址:http://student.csdn.net/space.php?uid=40568&do=blog&id=41827
相关推荐
ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法
创建物化视图ORA-12014错误解决方法 创建物化视图ORA-12014错误解决方法
Drop goldengate用户时,报ORA-00604 ORA-20782 ORA-06512错误
oracle的ORA-12514错误 解决办法
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
在oracle数据库遇到ora-227101错误的解决办法
关于WIN10系统使用oracle instant client 时候提示ORA-01019错误的解决方案,本方案是配置好环境变量后依然提示ORA-01019错误的解决方案,内附本人制作测试的全过程说明
ora-12519错误解决方案
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
NULL 博文链接:https://ajita.iteye.com/blog/1725304
在运行查询SELECT * FROM V$SESSION 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。本文给出答案。
离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法,在解决ORA-01033的过程中,又出现ORA-01145 * 第 1 行出现错误: ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机 接着的解决步骤
如果内存块仍然不够满足需求,那么就会出现ORA- 04031错误。这些错误同样可能发生在ASM的实例中。默认的共享池的大小基本能够满足大部分的环境,但是如果遇到ORA-04031错误的时候可能就需要增大。 当遇到这个错误的...
数据库常见错误解决方法,日志无法归档或者操作出项错误
ORA-01033ORACLE错误解决
ERwin连接oracle报ORA-01041内部错误,hostdef扩展名不存在解决办法,实验可解决问题。
ORA-00312: online log 1 thread 1: '/oradata/10g/db/instant/redo01.log' SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4294967296 SCOPE=BOTH; System altered. SQL> shutdown immediate ORA-...
win 8 升级 win 10 后,oracle 11g 无法启动及客户端连接,命令行sqlplus登录,startup 时报 ORA-00119 和 ORA-00132 的错误。 1. sqlplus /nolog 2. conn / as sysdba 3. startup 报错: ORA-00119 和 ORA-00132
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
ORA-06512 数字或值错误,字符缓冲区太小的解决方法。 有图有真相,希望对你有帮助。