2013-03-15 57 views
1

我試圖建立從SQL Server 2008 R2Access database的鏈接服務器。 Access database沒有密碼保護。正如我在其他帖子(specifically this one)中看到的,這通常是由於當前用戶無法訪問NetworkService文件夾內的Temp文件夾。由於我們在Windows Server 2008中執行此操作,所以目錄結構與大多數人不同。我允許訪問"root:\Documents and Settings\" directory中的每個臨時文件夾,但無濟於事。無法爲鏈接服務器初始化OLE DB提供程序「Microsoft.ACE.OLEDB.12.0」的數據源對象

這是我使用添加鏈接服務器的過程:

EXEC sp_addlinkedserver 
@server = N'OS_Access', 
@provider = N'Microsoft.ACE.OLEDB.12.0', 
@srvproduct = N'', 
@datasrc = N'C:\RTBData\Data\OS.mdb'; 
GO 

,它創建一個沒有問題的鏈接服務器,但我不能夠查看數據庫中的表/視圖。同樣,我的ASP.NET應用程序也無法訪問它。

我試過ACE and JET(64-bit)(通過安裝Office的數據連接組件),它們都不起作用。我也嘗試配置ACE提供商"Dynamic Parameter""Allow InProcess"爲true。

此外,我試圖在SQL配置管理器"startup parameters"字符串前添加"-g512;「排除內存問題正在增加由MSSQLSERVER services內存使用情況。

如果任何人都可以在此這將是夢幻般的閃耀光芒!謝謝

更新:我登錄到SQL使用sa帳戶,我能夠查看鏈接服務器我現在的用戶帳戶在SQL服務器的完全權限,所以我不確定的區別是什麼。在帳戶之間,也許我給了錯誤的權限文件夾,其中sa帳戶(正在內置)可以訪問。如果有人能夠在這裏指出我正確的方向,那將會很棒,而且我認爲這也會對很多其他人有所幫助。

+0

http://stackoverflow.com/questions/16986756/cannot-initialize-the-data-source-object-of-ole-db-provider-microsoft-ace-oledb/33609865#33609865 – 2015-11-09 13:11:24

回答

1

我通過在控制面板中禁用UAC解決了問題。我不確定這是做了什麼改變,但它可能會幫助其他人!

1
USE [master] 
GO 
EXEC sp_configure 'show advanced options', 1 
RECONFIGURE 
GO 
EXEC sp_configure 'ad hoc distributed queries', 1 
RECONFIGURE 
GO 
USE [master] 
GO 
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1 
GO 
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1 
GO 
SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Name & Location of DB';;, [TableName]) 
相關問題