2011-01-07 81 views
1

我有一個SSIS包,它查詢某些記錄的視圖,然後使用數據庫郵件發送一封電子郵件。我想將這個包部署到這些視圖存在的SQL Server中,然後使用SQL Server代理安排我們,但是我遇到了很多問題。部署SSIS包並保留連接密碼

的主要問題是,對作業中存在已存儲的憑據爲具有訪問視圖和電子郵件配置文件SQL Server帳戶連接管理器。我已經將包設置爲EncryptSensitiveWithPassword而不是用戶密鑰,但我似乎無法找到任何方法在作業運行時實際將該密碼傳遞給SQL Server代理。所以當它執行時會失敗,因爲它無法連接。

一堆的網站說,使用配置文件,但是當我走這條路它打破完全抱怨OLEDB連接不能建立工作。在這種情況下,我甚至無法在本地運行我的機器上的作業。

其他一些網站建議將軟件包複製到機器上的本地ssis包存儲中,但我只能通過SQL Server Tools訪問機器,我無法在文件系統中遠程或安裝任何東西,所以我必須使用SSIS部署過程通過清單文件進行安裝。

我讀過關於在另一個數據庫表中存儲設置的一些信息,但這又在服務器上顯示了權限問題。

最後我想通過/密碼或/解密作業調度,但是當我點擊ok了調度刪除該參數。

這是一個內部服務器和安全心不是一個真正的大問題,任何想法我怎麼能以明文傳遞解密密碼或只是告訴SSIS不打擾保護敏感數據?

回答

0

這聽起來像當你使用配置文件,你沒有正確設置配置文件。

您在本地運行時收到的確切錯誤是什麼?我可以嘗試重新創建問題。

+0

我所做的只是右鍵單擊控制流並選擇程序包配置,然後啓用程序包配置。添加一個新的XML配置文件(config.dtsConfig)並將我的連接管理器添加到複選框選項中的配置中。當我運行它,然後我得到「錯誤在獲取後續記錄 - SSIS錯誤代碼DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER」和更多的文本,將不適合在這個盒子。 – JoshReedSchramm 2011-01-10 14:53:15

0

你有沒有包投標設立來存儲密碼,然後將包保存到SSIS,並告訴它的密碼加密?如果您不是在本地保存它們,那可能是因爲您丟失了密碼,然後在沒有密碼的情況下推送了它們。

+0

不確定哪些出價是。我已將Connection Manager設置爲保存我的密碼。然後整個包被設置爲EncryptSensitiveWithPassword的ProtectionLevel。但似乎沒有辦法在sql server代理中提供該密碼。 – JoshReedSchramm 2011-01-10 14:55:57

1

的訣竅是:

  • 當保存在SQL Server商業智能工作室包,保證包屬性>的ProtectionLevel設置爲EncryptSensitiveWithUserKey。
  • 當您導入SSIS包到SQL服務器(從SQL管理工作室>對象資源管理器> [服務器]集成服務>存儲的包> MSDB>右鍵 - >導入包>套包位置的文件系統,選擇文件在包路徑和選擇選項「依賴於服務器存儲和角色的訪問控制。我猜在導入.dtsx文件時必須以與保存.dtsx文件相同的用戶登錄。

這意味着密碼保存與封裝,因此可以當任何人執行包一起使用。如果這是你不希望任何人執行你,然後適當地鎖定安全。

或者,您可以更改連接,以便它使用集成安全性(Windows身份驗證而不是sql登錄)並更改作業,以便作爲有權訪問數據庫查詢的用戶執行包。從您不需要任何密碼的角度來看,這是首選方案,而是通過用戶身份和權限進行管理。