我正在研究遠程服務器(LAN)上查詢SQL Server 2008 Express實例的C#應用程序。無法查詢SQL鏈接服務器 - >遠程訪問MS Access,只能在服務器上工作
當我在我的工作站/開發機器上時,我可以打開SQL Server Management Studio並通過Windows身份驗證連接到SQL實例,對於所有意圖和目的,體驗與在服務器上「在服務器上」 。據我所知,我可以在我的工作站上做任何我能在服務器上做的事情。
同一臺服務器承載Access 2003 .mdb文件,該文件在SQL實例中設置爲鏈接服務器。
有問題的查詢返回通過連接來自SQL數據庫和Access數據庫的表編譯的結果集。
當我在服務器上執行查詢時,也就是說我在服務器計算機上運行SQL Server Management Studio時,所有操作都按預期運行。但是,當我嘗試從我的開發機器運行相同的查詢時,無論是在SSMS中還是嘗試運行集成測試或調試應用程序時,我都無法對鏈接的服務器執行任何操作。我可以看到它在SSMS,但任何試圖在執行什麼結果:
無法初始化OLE DB提供程序「Microsoft.Jet.OLEDB.4.0」的鏈接服務器「
<DatabaseName
>」的數據源對象。
我已經瀏覽了許多與此錯誤有關的線程,並嘗試了很多提供程序設置的排列,但都無濟於事。
- Access數據庫沒有密碼(我試過設置使用名爲「admin」 W/O密碼的安全性)
- 工作站用戶帳戶具有這樣Access數據庫位於服務器目錄的完全權限
- 相同的行爲經歷了服務器的Win XP專業版SP3和現在與Win Server 2003的
- 相同的行爲經歷了客戶端爲贏XP專業版SP3和現在與Win 7 Pro的X32
對T的偉大工程他服務器,從不遠程。
非常感謝。
您是否嘗試過使用SQL Server身份驗證而不是NT身份驗證? – Burnsys 2010-01-14 18:41:25
太棒了!我真的很想知道爲什麼這種方式有效,集成安全性不行,但將您的評論發佈爲答案,我會將其標記出來。 – Jay 2010-01-14 20:02:03
可能想看看這個鏈接它提供了原因:http://dba.stackexchange.com/questions/7111/local-login-impersonation-not-working-with-a-linked-server – 2013-03-12 22:34:27