2013-07-03 163 views
0

我已經建立了一個SSIS Packaage,每日的基礎上導入數據。SSIS包從SSIS運行,而不是從工作

我已經在BIDS測試,它運行良好,我把它部署到該服務器SSIS和它運行良好,但是當我將其安排爲作爲作業它的錯誤了運行。我得到下面的錯誤。我已經將srvSQLagent帳戶添加到正確的組以訪問導致問題的文件夾..我在這裏錯過了一些愚蠢的東西嗎?

============================================== =====================

日期2013年3月7日14時55分06秒 日誌作業歷史記錄(進口SN2數據)

步驟ID 1 服務器STX-RPT 作業名稱導入SN2數據 步驟名運行導入包 時間00:00:09 的Sql嚴重性0 的Sql郵件ID 0 運營商發電子郵件
運營商網絡發送
次 分頁的運算符
重試嘗試0

消息 作爲用戶執行:INT \ srvSQLagent。 Microsoft(R)SQL Server執行包實用程序版本10.50.1600.1(32位)版權所有(C)Microsoft Corporation 2010.保留所有權利。
入門:14時55分06秒
錯誤:2013年7月3日14:55:15.69
代碼:0xC001401E
來源:Servicenet數據導入連接管理器 「下載」
說明:文件名「\\在連接中指定的FILE \ Groups \ ISG \ England \ Servicenet Data \ Downloaded「無效。結束錯誤
錯誤:2013年7月3日14:55:15.69
代碼:0xC0202070
來源: 「下載」 Servicenet數據導入連接管理器
說明:文件名屬性無效。文件名稱是一個設備或包含無效字符。結束錯誤
錯誤:2013年7月3日14:55:15.69
代碼:0xC0029163
來源:文件系統任務文件系統任務
說明:文件或目錄「\\ FILE \組\ ISG \英格蘭\ Servicenet數據\下載「由連接」下載「表示不存在。結束錯誤
DTExec:程序包執行返回DTSER_FAILURE(1)。
開始於:14:55:06
完成時間:14:55:15
已用時間:9秒。
包執行失敗。
步驟失敗。

+0

檢查權限。當您從BIDS或SSIS運行它時,它會在您的憑據下運行。作爲作業運行時,它使用SQLAgent用戶帳戶的憑據(INT \ srvSQLagent)。看起來像用戶不能看到文件的位置。 – Bill

+0

爲什麼該文件位置不是絕對路徑?對於SQL作業的工作目錄,不保證AFAIK。 – TToni

+0

我已經登錄爲srvSQLagent並有權訪問所需的文件和文件夾。因爲它是一個網絡共享,所以它是一個UNC。映射驅動器是用戶特定的。 –

回答

0

由於使用文件系統任務清除所有文件的文件夾而引發此問題。

我從來沒有問題的底部,我只是找到了一種不同的方法來刪除所需的文件。

0

這絕對是文件夾權限問題。

請給予每個人適當的權利。

Alpesh Dhori 軟件專業

0

我想,未來的解決方案將幫助您:

假設我們需要寫 \\ SERV \共享\ DIR1 .. \ DIRN \ TARGETDIR \ somefile。 TXT使用SSIS throught SQL代理作業和非管理員代理帳戶MYDOMAIN \ TestAccount

1)MYDOMAIN \ TestAccount需要讀/寫訪問共享\\ SERV \共享

2)MYDOMAIN \ TestAccount至少需要FILE_READ_DATA權限的所有文件夾(份額DIR1,.. DIRN

3)MYDOMAIN \ TestAccount所需的CHANGE權利+ FILE_DELETE_CHILD權限的文件夾TARGETDIR

(CACLS應該顯示這個權限如下:

DELETE 
READ_CONTROL 
SYNCHRONIZE 
FILE_GENERIC_READ 
FILE_GENERIC_WRITE 
FILE_GENERIC_EXECUTE 
FILE_READ_DATA 
FILE_WRITE_DATA 
FILE_APPEND_DATA 
FILE_READ_EA 
FILE_WRITE_EA 
FILE_EXECUTE 
FILE_DELETE_CHILD 
FILE_READ_ATTRIBUTES 
FILE_WRITE_ATTRIBUTES 

當然,targetDir的完整版權已經足夠。

如果targetDir沒有FILE_DELETE_CHILD權限,那麼我們會在SSIS中看到平面文件連接的這種奇怪行爲。用戶MyDomain \ TestAccount可以使用標準Windows工具對文件somefile.txt(讀取,寫入,刪除)進行任何操作。但SSIS作業無法覆蓋此文件並失敗。