2015-07-06 35 views
0

我們有一個需要與一系列Excel(嘆息)文件一起工作的過程。SSIS通過ACE.OLEDB作爲服務帳戶連接到Excel

的設置是:運行的SSIS代理帳戶

SQL代理作業。 在服務器上的共享上調用SSIS包。 然後開始使用ACE驅動程序訪問這些excel文件。

  • 該過程將在我的憑據下工作。
  • 該過程將在其他人的憑據下工作。
  • 過程將在調試模式下工作(雖然這不是一個公平的測試 爲會用我的本地機器的驅動程序)使用SSIS代理帳戶

  • 過程將無法正常工作。
  • 如果我在服務器上使SSIS代理帳戶爲 管理員,該過程將起作用。

我已經排除了以下幾點:

  1. 訪問文件共享。該帳戶可以從那裏加載 的文本文件。
  2. 32位/ 64位問題。帳戶可以運行,只要有足夠的 權限。

我的意見是服務帳戶需要某種程度的權限才能使用該驅動程序。儘管如此,我仍然無法解決問題。

我試過本地安全策略選項「加載和卸載設備驅動程序」沒有成功。 (我確實覺得這做了它,但後來意識到,我已經離開了帳戶管理組:-(中)

最後,有問題的錯誤消息:

SSIS錯誤代碼DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER 該AcquireConnection方法調用連接管理器 「TPR_ReadReportsExcelConnection」,錯誤代碼爲0xC0202009失敗。 有可能在此之前已經對爲什麼AcquireConnection方法調用失敗的更多信息 錯誤消息。

+0

試圖瞭解你已經什麼環境中運行排除,爲什麼。您使代理帳戶成爲機器上的管理員組的成員,並且一切正常。把他們從角色中解放出來,事情就會變得糟糕起來?代理帳戶是服務帳戶還是用戶帳戶?如果服務,它是否有能力與桌面交互?如果您認爲這是一個權限問題,爲什麼不通過授予對ACE安裝路徑的顯式訪問權限進行測試? – billinkc

+0

'在此之前可能會發布錯誤消息,並提供更多關於爲什麼AcquireConnection方法調用失敗的信息 - 還有哪些其他錯誤消息? – billinkc

+0

對不起沒有其他消息來自SSIS之前。該帳戶是一個服務帳戶。我怎麼知道它有能力與桌面交互?我會嘗試給賬戶訪問安裝程序路徑,謝謝。 – Kirky1

回答

0

這似乎超出了支持的範圍,具體取決於您如何設置您的SSIS代理帳戶。請參閱附加信息部分here。沒有足夠的積分,所以在這裏張貼圖片是最重要的一句話:

提供的SSIS作業將登錄的用戶的一個有效的HKEY_CURRENT_USER註冊表配置單元

+0

這似乎是一個很有前途的探索路線。如何讓服務帳戶以這種方式運作?作爲管理員,它能夠以這種方式運作。 – Kirky1

+0

好,讓我們澄清一下,因爲我的答案已被下調,我可能會有錯誤的結局。 SSIS代理帳戶是否以內置用戶帳戶之一的身份登錄:「網絡服務」,「本地系統」,「本地服務」還是以域名\用戶身份登錄? – chillihawk

+0

當然,對於這些事情,我並不是專家。據我所知,該帳戶不會登錄到服務器。它登錄到SQL Server實例,在那裏它有足夠的權限來執行SSIS包,通過駐留在服務器的文件共享上的代理作業執行。該帳戶的名稱確實是域\用戶。 – Kirky1