簡體   English   中英

部署的 SSIS 包不會讀取文件

[英]Deployed SSIS package will not read a file

我有一個 SSIS 包,它應該讀取一個文件夾,如果該文件夾包含任何文本文件,它將讀取它們並將數據存儲到數據庫中。 該包在文件系統中完美運行,但是當我部署它時它失敗了。 該包使用一個保持一致的項目級變量作為文件夾路徑來查看要在哪個文件夾中查找文件。

SQL Server 代理給了我這個錯誤: 在此處輸入圖片說明 查看執行報告后,如果我通過 SQL Server 代理使用服務帳戶執行它,我會看到以下錯誤消息:“文件名屬性無效。文件名是設備或包含無效字符”

“連接中指定的文件名‘(此處的路徑)’無效”

“平面文件連接管理器驗證失敗” 在此處輸入圖片說明 但是,如果我通過直接右鍵單擊目錄中的包並執行來自己運行它,則執行報告將成功返回,但它會包含一條警告:“從文件輸入文件夾中讀取文件警告:對於每個文件枚舉器為空。For Each File 枚舉器未找到任何與文件模式匹配的文件,或者指定的目錄為空” 在此處輸入圖片說明

我懷疑這是一個權限錯誤,但我沒有過多處理 Microsoft SQL Server 中的權限,而且我使用的服務帳戶不是我創建的。 我嘗試將包和項目的安全性從默認的“使用用戶密鑰加密敏感數據”更改為“不保存敏感數據”,重建和重新部署,但這根本沒有幫助。 這很可能是權限錯誤,但我對如何解決感到困惑。 任何幫助深表感謝!

編輯:在控制流中的任務上設置“延遲驗證”並使用 SQL Server 代理執行包后,它現在減少了 2 個錯誤在此處輸入圖片說明

要使文件系統任務工作,執行帳戶需要對相關文件夾的權限。 當您通過 SQL-agent 執行包時,該包在運行 SQL-agent 帳戶的帳戶下執行,當您右鍵單擊該包並按執行時,該包將作為您的帳戶執行。

一個問題可能是 SQL 代理帳戶沒有文件夾的權限,並且無法枚舉內容。 您可以通過將 SQL-server 帳戶臨時更改為您自己的帳戶並再次運行該作業來驗證這一點:

  • 打開 Sql Server 配置管理器
  • SQL Server Services雙擊SQL Server Aggent
  • 把賬號改成自己的賬號
  • 重啟服務

如果這解決了問題,請改回 SQL 服務器帳戶並檢查您嘗試枚舉的文件夾的文件夾權限。 添加 SQL-agent 帳戶或包含該帳戶的組以具有讀取文件夾的權限。 顯然,您也可以先檢查文件夾權限,並確保執行帳戶對其具有權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM