1

我正在嘗試使用Advantage OLE DB提供程序(分別爲32位和64位)在SQL Server 2000和SQL Server 2005 x64中向Sybase Advantage數據庫創建鏈接服務器。SQL 2000鏈接服務器訪問被拒絕錯誤的優勢

我一直得到試圖瀏覽目錄時出現以下錯誤,並從兩個SQL服務器與OPENQUERY執行查詢時:

OLE DB error trace [OLE/DB Provider 'Advantage OLE DB Provider' IUnknown::QueryInterface returned 0x80070005: Access denied.]. 
Msg 7399, Level 16, State 1, Line 1 
OLE DB provider 'Advantage OLE DB Provider' reported an error. Access denied. 

下面的堆棧溢出的問題和答案幫我上解決這個問題SQL Server 2005的64:

Advantage to SQL 2008 Linked Server Access Denied Error

不過,我仍然得到拒絕訪問 SQL Server 2000中的錯誤,儘管如上所述設置Allow inprocess

兩個鏈接的服務器使用相同的數據源,登錄憑證和服務器選項。任何幫助是極大的讚賞。

回答

0

嘗試在查詢分析器中運行查詢。您應該看到返回的Advantage特定的OLE DB錯誤。例如:

服務器:消息7399,級別16,狀態1, 行1 OLE DB提供程序 '優勢OLE DB 提供' 報告了一個錯誤。
[OLE/DB提供程序返回消息: 錯誤7078:優勢數據庫 服務器無法對用戶進行身份驗證。 確保用戶名和密碼 正確無誤。 axServerConnect
AdsConnect]

在這種情況下,它是一個糟糕的用戶名​​/密碼

+0

感謝埃德加。我嘗試從SQL 2000服務器上的查詢分析器以及客戶端計算機上的SQL Management Studio執行查詢,無論如何我都會得到相同的錯誤。我在我的問題中更新了錯誤消息,以包含原本遺漏的一行。 – Nimrod

+1

鑑於IUnknown :: QueryInterface,我懷疑SQL Server可能無法找到OLE DB提供程序或無法加載它。 A)檢查註冊表HKLM \ Software \ Microsoft \ MSSQLServer \ Providers。從頂層向下確保AllowInProcess設置爲1. B)使用Process Monitor(來自sysinternals)並對提供程序ADSO​​LEDB.dll和ACE32.dll進行篩選,並查看它是否曾被加載過。 – Edgar

相關問題