2012-12-18 87 views
3

有什麼辦法可以在SQL Server 2008 R2中使用OpenRowSet和OpenDataSet命令,而不必擁有系統管理員權限?OpenRowSet和OpenDataSet沒有系統管理員權限

我想從Excel文件加載數據,我們的服務帳戶將做實際的加載不能有系統管理員權限。

它目前不是鏈接的「服務器」,並且文件名可以每個月更改一次。

這裏是我的查詢:

SELECT 
    Center, 
    Amount 
FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0' 
    ,'Excel 8.0;HDR=NO;Database=C:\exceldata.xls' 
    ,'SELECT 
     F1 as Center, 
     F2 as Amount 
    FROM [Sheet1$]') 
WHERE Amount > 0 

感謝

回答

1

你不一定需要系統管理員權限,只允許ADMINISTER BULK OPERATIONS(這是一個服務器級別的權限,但不是很系統管理員)。

如果這不是一個選項,您可以嘗試設置鏈接服務器連接並按照this post中的方法。

+0

是否還需要其他安全設置?我的用戶擁有ADMINISTER BULK OPERATIONS權限,但我仍然收到錯誤: Msg 7415,Level 16,State 1,Line 1 對OLE DB提供程序'Microsoft.ACE.OLEDB.12.0'的臨時訪問已被拒絕。您必須通過鏈接服務器訪問此提供商。 – user1238918

3

我有同樣的問題,這個指令http://www.johnsoer.com/blog/?p=538

不久,解決它:添加DWORD登記鍵HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\ Microsoft SQL Server的\ YOUR_MSSQL_VERSION.YOR_INSTANCE_NAME \供應商\ Microsoft.ACE.OLEDB.12.0 \的DisallowAdhocAccess到0

+0

特別查詢是不允許的,所以這是行不通的。我發現了一個可行的解決方案,但我們添加了ACE驅動程序,然後將Excel文件轉換爲CSV文件進行編程。 – user1238918