我有一個包含執行DDL任務的SSIS包(SQL Server 2016)。其任務是備份SSAS表格多維數據集(以便它可以在位於不同域上的第二臺服務器上進行復制)。在執行DDL任務中使用參數化密碼
通常當我編寫SSIS包時,我會參數化隨時間變化的所有內容。在這種情況下,我想參數化我備份文件的位置以及要使用的密碼。
在常規的SSIS腳本任務中,我可以直接引用項目參數。我沒有看到用Execute DDL Task執行此操作的任何方法。我能做的最好的是從變量中獲取整個腳本,然後引用相關參數。
我面臨的挑戰是我正在使用密碼,所以我想將密碼項目參數標記爲敏感。只要我這樣做,我不能在變量中引用參數。
我的選擇似乎是:
離開沒有標記爲敏感的密碼項目參數(這意味着它是可見的誰打開包裝和/或有權訪問SSISDB環境變量的任何人)
對DDL任務內的腳本進行硬編碼,並且根本不參數化密碼或文件名。此外,加密整個軟件包(而不僅僅是敏感屬性),以便打開軟件包的任何人都看不到它。
第二個選項聽起來是最好的,因爲它不涉及密碼在純文本中可見。但是,它不允許對密碼進行任何參數設置。 (這意味着每次更改密碼都需要重新部署包裝。)
我錯過了什麼嗎?是否有另一種方法來引用SSIS中的一個執行DDL任務內的參數化密碼,這是我不知道的?對於這種情況的任何其他建議?
附註:我不知道是否有可能是其中包含在一個變量中明文密碼的情況(在如果腳本運行失敗,將包含在ErrorDescription中。 – Leonard
第二方注意:有關Execute DDL任務的文檔確實提到,由於DDL腳本可以包含密碼,因此應對整個軟件包進行加密。 https://docs.microsoft.com/en-us/sql/integration-services/control-flow/analysis-services-execute-ddl-task – Leonard
您可以在腳本任務中訪問加密的parms。有一個如何在腳本任務頂部生成的註釋中執行此操作的示例。如果我已經正確理解你的問題。 –