的Windows Server 2008 R2 SP1 64位, SQL Server 2008中的x64 SP3, Access數據庫引擎的x64 SP1錯誤查詢使用Microsoft.ACE.OLEDB.12.0
我已經鏈接的服務器,從網絡共享DBF文件:
EXEC master.dbo.sp_addlinkedserver @server = N'dbf2', @srvproduct=N'dbf2', @provider=N'MSDASQL', @provstr=N'DRIVER={Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)};'
當查詢從本地磁盤一切DBF文件是OK:
select * from openquery(dbf2, 'select * from c:\\V4C8MA6.dbf') a
但是從網絡共享查詢時
select * from openquery(dbf2, 'select * from \\\\gefest\\upload\\V4C8MA6.dbf') a
我已經得到了錯誤:
Msg 7399, Level 16, State 1, Line 6
The OLE DB provider "MSDASQL" for linked server "dbf2" reported an error. The provider did not give any information about the error.
Msg 7350, Level 16, State 2, Line 6
Cannot get the column information from OLE DB provider "MSDASQL" for linked server "dbf2".
我已經嘗試不同的變體來描述的路徑:[], 「」,``,\ 「\」,... 一切正常與nework共享訪問,sql服務器帳戶需要訪問權限。但是......
如何使它工作?
添加於04 2012年5月:
xp_cmdchell完美列出的目錄。
這是我發現: 我創建的鏈接與sprovstr服務器指示文件的位置:
@provstr=N'DRIVER={Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)};dbq=\\gefest\upload'
,如果我連接到使用SQL 服務器授權在SQL Server的工作原理。
這是使用DBQ當什麼procmon中顯示:
日期&時間:5/4/2012上午09時57分55秒
事件類:文件系統
操作:的CreateFile
結果: 成功
路徑:\\ gefest \上傳\
TID:8588
時間:0。0001988
所需的訪問:讀取屬性
配置:打開
選項:打開重新分析點
屬性:N/A
ShareMode:讀,寫,刪除
AllocationSize:N/A
OpenResult:打開
這是表示在查詢路徑時:
日期&時間:5/4/2012上午9時58分53秒
事件類:文件系統
操作:的CreateFile
結果:對象路徑無效
路徑:\\ gefest \上傳\
TID:8588
時間:0.0000819
所需的訪問:讀取屬性
配置:打開
選項:打開重新分析點
屬性:N/A
ShareMo de:讀取,寫入,刪除
AllocationSize:n/a
爲什麼sql server在第一次查詢時收到所需的共享訪問權限,而不是第二次?
第三和第四個變量是連接到使用Windows驗證服務器時:使用DBQ
:
日期&時間:5/4/2012上午10時02分54秒
事件類:文件系統
操作:的CreateFile
結果:拒絕訪問
路徑:\\ gefest \ upload \
工商註冊號:8588
持續時間:0。0031837
所需的訪問:讀取屬性
配置:打開
選項:打開備份,打開重新分析點
屬性:N/A
ShareMode:讀,寫,刪除
AllocationSize:N/A
模擬:GAZ \ kozlovai
指示在查詢路徑:
日期&時間:5/4/2012上午10點02分20秒
事件類:文件系統
操作:的CreateFile
結果:對象路徑無效
路徑:\\ gefest \上傳\
TID:8588
時間:0.0000378
所需的訪問:讀取屬性
配置:打開
選項:打開備份,打開重新分析點
個屬性:N/A
ShareMode:讀,寫,刪除
AllocationSize:N/A
模擬:連接到共享時GAZ \ kozlovai
SQL Server的模仿。並且此帳戶'GAZ \ kozlovai'可以完全訪問共享,但sql server仍然無法打開該文件...
請loook什麼我加04 2012年5月 – Boogier
剛剛看過您發佈的額外信息,以及東西浮現在腦海 - 奇怪,因爲這可能聽起來,是有你的域實現了漫遊配置文件的任何機會,如果有的話「標準」Windows文件夾被重定向到網絡共享? –
另一個想法 - 是將映射到服務器的C:\驅動器的「gefest」服務器上的「上載」共享?誠然,這是一個很長的過程,但如果是這樣,您可能會遇到對網絡中系統驅動器根目錄中文件活動的限制。作爲測試,您可能會將.dbf文件移至其他文件夾,併爲您創建輔助共享以測試您的查詢。 –