连接Oracle时出错 - ORA-12638:凭据检索失败

时间:2017-01-20 12:46:08

标签: oracle linked-server

在使用sql中的链接服务器连接和外部oracle db

时,我收到以下错误
Cannot initialize the data source object of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxx".
OLE DB provider "OraOLEDB.Oracle" for linked server "xxx" returned message "ORA-12638: Credential retrieval failed".

我有这个问题大约4次出5次。所以它有时只能起作用。

在我的情况下,测试和live oracle DB(外部)在具有不同SID / db实例的同一物理服务器上。

使用OraOLEDB的测试连接始终如一,它是解决问题的实时链接服务器。

同样从等式中取出网络我尝试从我们的测试环境连接oracle live和从我们的live连接oracle测试。连接到oracle测试工作正常,无论如何都没有。

我可以使用用于实时链接服务器的实时登录凭据连接到面向外部Oracle数据库的应用程序。所以对我来说,登录帐户是不可能的。

问题1 : - 有没有其他方法可以通过sql或C#连接外部Oracle数据库?

我使用了如下的openrowset并收到错误:

SELECT *
FROM OPENROWSET('OraOLEDB.Oracle', 'Data Source=external_Oracle_serverIP;Initial Catalog=bbinstance;User id=xxx; Password=xx;',
'SELECT * FROM dbname')

我收到以下错误

OLE DB provider "OraOLEDB.Oracle" for linked server "(null)" returned message "ORA-12560: TNS:protocol adapter error". Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "OraOLEDB.Oracle" for linked server "(null)".

问题2 :上面我做错了什么?

2 个答案:

答案 0 :(得分:0)

当我遇到此问题时,由于sqlnet.ora中的以下行:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

这会导致Oracle尝试使用Windows Native Authentication Services

如果Oracle无法通过此方法进行身份验证,您将收到12638错误。要进行故障排除,请将此行更改为

SQLNET.AUTHENTICATION_SERVICES= (NONE)

并将测试重复到实时数据库。

答案 1 :(得分:0)

Oracle 12c及更高版本: 有时,在不同的根数据库下运行的2个Oracle Pluggable DB服务有可能在同一个侦听器下运行而造成这种混乱。检查并停止(如果不是Prod)不需要的PDB,然后尝试连接到所需的DB。

相关问题