ora-12638 身份证明检索失败 解决方式

本文探讨了在不同域环境下Oracle 9i出现ORA-12638错误的原因及解决方法。主要涉及SQLNET.AUTHENTICATION_SERVICES配置不当导致的身份验证问题,包括NTS认证的影响及调整建议。

今天登入一个Windows2003 系统下安装的Oracle9i ,ora-12638 身份证明检索失败,后来发现是因为两台机器在不同的域下面。客户机是在WLAN域名中,测试数据库在DEPT002 域中 。初步了解发现如果两台机器都有 sqlnet.ora 文件,且其中都有 SQLNET.AUTHENTICATION_SERVICES= (NTS) ,这时候会出现: ora-12638 身份证明检索失败 错误 。

一般方式是注释掉DB段或客户端的

# SQLNET.AUTHENTICATION_SERVICES= (NTS) 或 设置 SQLNET.AUTHENTICATION_SERVICES= (NONE),

[@more@]

详细解释:

http://afy.itpub.net/post/980/48931

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),
则均可以正常连接数据库
SQL> connect scott/1@lenovo
Connected.


现象3、当客户端Site(B)以本机身份登录时,则不论 Site(B) 的 sqlnet.ora文件中的
这一项 SQLNET.AUTHENTICATION_SERVICES = (NTS) 还是被注释掉
#SQLNET.AUTHENTICATION_SERVICES= (NTS) 或 SQLNET.AUTHENTICATION_SERVICES= (NONE),
均可以正常连接数据库
SQL> connect scott/1@lenovo
Connected.


原因: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。 鉴与生产环境,无法对两个域建信任关系后作测试,无奈!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-1005771/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-1005771/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值