最近在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错误解决方法 #### 背景介绍 在Oracle数据库中,物化视图(Materialized View)是一种用于优化查询性能的重要工具。它预先计算并存储了复杂的查询结果,从而在实际查询时能够快速地返回...
Oracle数据库发生ORA-04031错误原因浅析及处理 Oracle数据库是甲骨文公司提供的...本文通过对ORA-04031错误的分析和解决方法的介绍,旨在帮助读者更好地理解Oracle数据库中的ORA-04031错误,并提供了实用的解决方法。
### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...
通过以上步骤,可以有效地排查并解决使用IMPDP工具导入数据时遇到的ORA-39002和ORA-39070错误。这些错误主要与目录设置、权限管理以及路径配置有关。确保所有相关的目录和文件都具有正确的权限,并且路径设置正确...
### 三、错误解决步骤 解决上述错误的关键在于确保数据库实例能够成功启动并进入正常运行状态。以下是一些基本的解决步骤: 1. **检查数据库实例状态**:首先,通过SQL*Plus或其他数据库管理工具登录到数据库...
这篇文章主要讲述了在Oracle 11g R2客户端尝试连接Oracle 19c服务端时,遇到了两个特定的错误:ORA-28040和ORA-01017,以及如何解决这些问题。 ORA-28040错误是因为客户端和数据库服务器在版本兼容性上存在不匹配。...
### ORA-01460 错误原因分析 ...通过以上步骤的检查和调整,通常可以解决大部分由ORA-01460错误引起的数据库操作问题。需要注意的是,在进行任何更改之前,最好先备份相关配置和数据,以免出现意外情况。
### ORA-01033 错误解决方法 #### 概述 在数据库管理过程中,遇到诸如ORA-01033等错误代码是非常常见的。这些错误往往与数据库实例的状态、文件系统问题或是配置不当有关。ORA-01033 错误通常表示在启动或关闭...
本文将深入探讨ORA-01460错误的成因、影响以及提供一系列有效的解决方案,帮助数据库管理员和开发人员克服这一挑战。 ### ORA-01460错误概述 ORA-01460错误全称为“ORA-01460: unimplemented unreasonable ...
关于WIN10系统使用oracle instant client 时候提示ORA-01019错误的解决方案,本方案是配置好环境变量后依然提示ORA-01019错误的解决方案,内附本人制作测试的全过程说明
### ORA-12514错误解决办法 #### 错误概述 ORA-12514是Oracle数据库中常见的一个错误,全称为“TNS:listener does not currently know of service requested in connect descriptor”。该错误表明客户端尝试连接到...
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
通过以上方法,我们可以有效地解决ORA-29275错误,并提高Oracle数据库的整体稳定性和数据完整性。需要注意的是,在实际操作过程中,应当根据具体情况选择最适合的解决方案。例如,在某些情况下,调整字段长度可能是...
### Oracle 错误 ORA-00132 和 ORA-00214 解析及处理 #### 一、错误概述 在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行...
解决ORA-01033错误通常需要定位具体的原因并采取相应的措施,常见的解决步骤包括: 1. **检查数据文件状态**:确保所有数据文件都完好无损且可用。 2. **重建控制文件**:如果控制文件损坏,可以通过备份控制文件...
但是,清除事件日志是最简单和有效的解决方法,能够快速解决ora-28056错误。 ora-28056错误的预防方法: 为了预防ora-28056错误,数据库管理员可以定期清除事件日志,确保事件日志不溢出。此外,数据库管理员也...
本文将详细介绍如何在Windows和Linux操作系统下解决ORA-00702错误。 **ORA-00702错误解析** ORA-00702错误信息表明数据库实例试图访问一个尚未完全初始化的数据文件或控制文件。这可能是由于数据库在不正常的情况下...
### Oracle ORA-03113 错误解析及解决方法 #### 一、ORA-03113 错误概述 ORA-03113 是一个较为常见的Oracle错误,通常出现在网络通信出现问题时,具体表现为“end-of-file on communication channel”(通信通道上...