SSIS 2017 包中的連接管理器未保存密碼
我們在 SQL 2017 (14.0.3029.16) 上使用 Visual Studio 15.7.2 和 SSIS。
我們為第三方、供應商管理的 SQL Server 2008 R2 (10.50.6529.0) 建構了一個連接管理器。我們唯一允許的與該伺服器的連接是通過 SQL 登錄,因此 Windows 身份驗證是不行的。
我們可以在 Visual Studio/SSDT 中很好地執行包,包按照我們的預期成功執行並完成。
當我們在 SSDT 中打開包時,我們立即遇到錯誤:
在查看連接管理器時,我們會看到以下圖示:
當我們打開連接管理器時,我們看到的是這樣的(密碼空白,應該是*********):
該軟體包配置為在東部時間晚上 8:45 執行(通過作業),並且每次都失敗。我們收到大量錯誤,基本上表明我們無法連接到第 3 方伺服器。調查顯示密碼沒有被保存,所以我們在前門被拒絕了!
有沒有人遇到過這個?我必須糾正哪些選項?我對 SSIS 有點陌生,所以我正在快速學習很多艱苦的課程。
預設情況下,SSIS 使用稱為 UserKey 的東西保存和加密敏感數據(密碼等)。這意味著除了先前保存 SSIS 包的人之外,沒有其他人能夠使用保存密碼的連接。
這可以通過 SSIS 包屬性 -> ProtectionLevel 進行更改。您應該選擇“EncryptAllWithPassword”並將密碼設置為“PackagePassword”屬性並保存包。現在當你下次打開包裝時,SSDT會要求你輸入密碼。輸入後,連接應該可以正常工作。
SQL 登錄的密碼是敏感的,因此它將從連接字元串中省略,因此不會保存。如果將包部署到 SSIS 目錄,則可以使用帶有
Sensitive
密碼屬性的環境變數,然後將其映射到連接管理器中的相應屬性。有關如何為 SQL 登錄實現此功能的更多詳細資訊,請參閱 Andy Leonard 的以下文章。如果要配置 SSIS 目錄,請參閱本系列的第 18 級。您還提到您對 SSIS 比較陌生,所以我建議您也通過這個樓梯。http://www.sqlservercentral.com/articles/Stairway+Series/121490/