安装过程中,在启动实例并创建全局数据库时,如出现“ORA-12638: 身份证明检索失败”,请将/oracle/product/10.2.0/db_1/NETWORK/ADMIN/sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (NTS)将其更改为SQLNET.AUTHENTICATION_SERVICES= (BEQ,NONE) 什么是BEQ协议: 网上找到的一种解释:BEQ是一种连接方式,一般在使用middle ware(中间件)时使用。这种连接方式使得远端程序不能直接连接到Oracle DB,只能在本机上连接到DB。因此在本机上安装middle ware,当中间件Updata to memory 之后启用它。这样,你的客户端连接到middle ware时,middle ware可以通过自己已有的DB做认证后,middle ware和数据库先做好连接。客户端Call proc from ware后,middle ware根据call的proc名吧自己的proc发送到proc poll,此时Oracle里的Proc监听程序在收到后再反馈相应的数据到middle ware,middle ware再发送到客户端。
=========================================================================================
身份证明检索失败(Ora-12638)
解决:NTS是WinNT的认证方式
---------------------------------------------------------------
在sqlnet.ora中将
#sqlnet.authentication_services = (NTS/tcp)
改为
#sqlnet.authentication_services = (NONE)
或者把这一行注释掉
---------------------------------------------------------------
sqlnet.authentication_services = (NONE)
照着做了还是没有解决问题
又google
server和client都是windows
把client的sqlnet.ora删除就可以了
问题解决
学习一下sqlnet.ora
tnsnames.ora文件放在客户端机器上,并且在默认状态下存储在ORACLE_HOME/network/admin目录中。sqlnet.ora文件控制着客户端Oracle Net Services的行为,例如跟踪级别和会话特性。我们已经知道了listener.ora和init.ora文件的用途和位置。
从根本上讲,当客户发出请求时,通过使用tnsnames.ora文件首先解析Oracle Net Services的名称。tnsnames.ora文件中的参数将该请求指引到适当的数据库节点。监听器进程监听客户请求,并且将其与一个服务器进程相连接。该请求将被处理,其结果被返回到客户端机器。
客户端的sqlnet.ora 有一个功能
name.directory_path
说明连接的字符串是基于主机命名还是本地命名方法
如果是主机命名
scott/tiger@aaa 这个aaa 就是目标主机的名字,
如果是本地命名
这个aaa 就要到tnsname.ora 文件中获取具体的连接信息.
=====================================================================
“ORA-12638: 身份证明检索失败” 错误,是因为Oracle的高级安全性验证导致,解决办法如下:开始 -> 程序 -> Oracle -> Configuration and Migration Tools ->
Net Manager→本地→概要文件→Oracle高级安全性→验证→去掉所选方法中的 "NTS" 就可以了.
================================================================
登陆软件或连接数据库时提示 ora-12638身份证明检索失败 net configration assistant可以连接成功
reason:在网上找了下分析原因NTS选项使Oracle客户端首先在Oracle服务器上尝试使用当前的Windows域证书认证—不管传送了什么域。如果Oracle配置为支持Windows认证,或者证书不足以让你登陆服务器,将会失败(如在客户端使用非SA账户)。
改变sqlnet.ora中的参数禁止使用Windows证书进行认证,而是完全依赖于传递的连接字符串。
result:同上所述