我正在嘗試使用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
。
兩個鏈接的服務器使用相同的數據源,登錄憑證和服務器選項。任何幫助是極大的讚賞。
感謝埃德加。我嘗試從SQL 2000服務器上的查詢分析器以及客戶端計算機上的SQL Management Studio執行查詢,無論如何我都會得到相同的錯誤。我在我的問題中更新了錯誤消息,以包含原本遺漏的一行。 – Nimrod
鑑於IUnknown :: QueryInterface,我懷疑SQL Server可能無法找到OLE DB提供程序或無法加載它。 A)檢查註冊表HKLM \ Software \ Microsoft \ MSSQLServer \ Providers。從頂層向下確保AllowInProcess設置爲1. B)使用Process Monitor(來自sysinternals)並對提供程序ADSOLEDB.dll和ACE32.dll進行篩選,並查看它是否曾被加載過。 – Edgar