2008-12-18 45 views
20

我有一個遺留的VB6應用程序,我已繼承。我面臨的問題是,我得到臭名昭着的ORA-12638:憑據檢索失敗

ORA-12638: Credential retrieval failed 

錯誤消息,每當它試圖連接到我們的Oracle數據庫之一。但是,我可以很好地連接SQLPlus和Toad。我谷歌搜索和每個人似乎都說,修改他們的sqlnet.ora文件到

SQLNET.AUTHENTICATION_SERVICES=(NONE) 

做的伎倆。我還沒有找到有其他修復方法的人。這裏是我的連接字符串看起來像:

"PROVIDER=OraOLEDB.Oracle;DATA SOURCE=(DESCRIPTION = " & _ 
"(ADDRESS = (PROTOCOL = TCP)(HOST = server1) 
(PORT = 1521))" & _ 
"(ADDRESS = (PROTOCOL = TCP)(HOST = server2) 
(PORT = 1521))" & _ 
"(LOAD_BALANCE = yes) " & _ 
"(CONNECT_DATA = " & _ 
"(SERVER = DEDICATED) " & _ 
"(SERVICE_NAME = database_name_here) " & _ 
") " & _ 
"); " & _ 
"User Id=username_here;Password=password_here;" 

至於我的VB代碼,它很簡單。

Private oracleDatabaseConnection As ADODB.Connection 

Set oracleDatabaseConnection = New ADODB.Connection 
oracleDatabaseConnection.Open oracleConnectionString 

任何人有什麼想法?

謝謝。 :)

回答

4

老實說,這是可以由許多不同的根問題引起的錯誤之一。

假設您的數據庫服務器是Windows,請檢查其系統和應用程序的事件日誌。你可能會發現有用的東西。

我在某些情況下遇到了此錯誤,因爲運行Oracle服務的帳戶被鎖定。

我也遇到過,我們從來沒有找到解釋的情況下,但我們總是能夠通過讓用戶鎖定和解鎖他們的PC來解決問題。

VB應用程序是否在與可連接的客戶端不同的計算機上運行?如果是這樣,是否有可能在同一臺計算機上使用不同的客戶端程序進行測試 - 或者是否可以在您的計算機上嘗試VB應用程序?

+0

我剛剛遇到了問題的第一次和鎖定/解鎖做了伎倆。我正在使用從休眠模式恢復的Windows XP虛擬機。它最近運行的主機要求更改密碼,這可能是原因(儘管VM在不同的(虛擬)網絡中使用不同的用戶帳戶。) – 2014-12-15 07:48:29

1

如果您正在IIS下運行Web應用程序,重新啓動IIS似乎有所幫助。但這是一個沒有多少推理背後的問題的吸引力。

32

我知道這是一個很老的文章,但我發現,爲我(舊版VB6應用程序)工作的解決方案:

Original Entry - SQLNET.AUTHENTICATION_SERVICES= (NTS) 

Modified Entry - SQLNET.AUTHENTICATION_SERVICES= (NONE) 

變化sqlnet.ora文件以下條目

這是一個LINK的解決方案

+1

SQLNET.AUTHENTICATION_SERVICES =(NONE)像魅力一樣工作 – 2012-09-14 10:17:57