2017-10-09 125 views
0

我有一個包含執行DDL任務的SSIS包(SQL Server 2016)。其任務是備份SSAS表格多維數據集(以便它可以在位於不同域上的第二臺服務器上進行復制)。在執行DDL任務中使用參數化密碼

通常當我編寫SSIS包時,我會參數化隨時間變化的所有內容。在這種情況下,我想參數化我備份文件的位置以及要使用的密碼。

在常規的SSIS腳本任務中,我可以直接引用項目參數。我沒有看到用Execute DDL Task執行此操作的任何方法。我能做的最好的是從變量中獲取整個腳本,然後引用相關參數。

我面臨的挑戰是我正在使用密碼,所以我想將密碼項目參數標記爲敏感。只要我這樣做,我不能在變量中引用參數。

我的選擇似乎是:

  1. 離開沒有標記爲敏感的密碼項目參數(這意味着它是可見的誰打開包裝和/或有權訪問SSISDB環境變量的任何人)

  2. 對DDL任務內的腳本進行硬編碼,並且根本不參數化密碼或文件名。此外,加密整個軟件包(而不僅僅是敏感屬性),以便打開軟件包的任何人都看不到它。

第二個選項聽起來是最好的,因爲它不涉及密碼在純文本中可見。但是,它不允許對密碼進行任何參數設置。 (這意味着每次更改密碼都需要重新部署包裝。)

我錯過了什麼嗎?是否有另一種方法來引用SSIS中的一個執行DDL任務內的參數化密碼,這是我不知道的?對於這種情況的任何其他建議?

+0

附註:我不知道是否有可能是其中包含在一個變量中明文密碼的情況(在如果腳本運行失敗,將包含在ErrorDescription中。 – Leonard

+0

第二方注意:有關Execute DDL任務的文檔確實提到,由於DDL腳本可以包含密碼,因此應對整個軟件包進行加密。 https://docs.microsoft.com/en-us/sql/integration-services/control-flow/analysis-services-execute-ddl-task – Leonard

+0

您可以在腳本任務中訪問加密的parms。有一個如何在腳本任務頂部生成的註釋中執行此操作的示例。如果我已經正確理解你的問題。 –

回答

0

這是在SSIS腳本任務引用一個敏感的參數的語法:在選項2 enter image description here

+0

不幸的是我沒有在這個例子中使用腳本任務;我正在使用Execute DDL任務。 – Leonard

+0

是否可以在DDL任務之前動態生成腳本任務中的DDL語句? –

+1

你有沒有看過使用這個類:https://technet.microsoft.com/en-us/library/microsoft.datatransformationservices.tasks.dtsprocessingtask.asexecuteddltask(v=sql.110).aspx –

相關問題