2009-06-04 223 views
6

我有一些SSIS軟件包被密碼保護(他們的保護級別顯然是EncryptAllWithPassword)由一個開發人員離開公司,無法再到達,並試圖打開它們給出了以下錯誤,因爲密碼可以'噸提供:如何恢復或重置SSIS包密碼?

錯誤加載「Package.dtsx」:無法移除封裝保護 與錯誤0xC0014037「包是 用密碼加密未指定 口令,或者是不正確 。 」。這發生在CPackage :: LoadFromXML方法的 中。

有什麼方法可以打開這些包嗎?我有權訪問最初用於創建這些軟件包的管理員帳戶,並擁有由同一人加密的其他軟件包,但使用我認識的不同密碼。

我已經聯繫了當地的微軟代表關於這個問題,到目前爲止他們只把我和a page describing how to set or change a password聯繫起來,這並沒有幫助,因爲我需要先打開軟件包或提供舊密碼。有沒有人曾經遇到類似的情況,或知道解決此問題的方法?

+1

哎喲,我很想知道這個答案,因爲我懷疑如果沒有某種黑客行爲就無法完成。這對您現在不是很有幫助,但您可能希望考慮在組織內部使用密碼安全/密鑰管理器以避免將來出現此問題。 – 2009-06-04 10:03:29

+0

好問題!你們是否使用過任何形式的資源?您可能會在那裏找到一個未加密的版本,並且一些開發人員甚至會將文件與密碼一起存檔... – RSolberg 2009-06-05 17:38:30

回答

2

我不認爲有任何方法可以恢復軟件包,如果使用EncryptAllWithPassword,整個軟件包被加密,不能解碼沒有密碼。當然可以嘗試密碼猜測或字典攻擊,希望開發人員使用弱密碼。

如果是EncryptSensitiveWithPassword - 您可以打開然後重新輸入連接字符串密碼。

1

似乎該軟件包也存儲在SQL Server(msdb數據庫)中,將其從Integration Services導出到文件系統允許我們打開它(警告有關丟失敏感數據)。這種解決方案完美適用於這種特殊情況。我們主要需要知道這些包中會發生什麼。

+0

不錯的解決方法。 – 2009-06-04 14:58:01

0

我同意Michael對密碼猜測或字典攻擊的評論,認爲這是一種很好的方法。

我剛剛還建議使用像EC2這樣的雲計算環境來分而治之......但後來我意識到你被困在窗戶上!

+0

EC2也運行Windows。 (http://aws.amazon.com/windows/) 然後有Azure! (http://www.microsoft.com/azure/) – Michael 2009-06-13 23:51:01

+1

所以你去!租一臺1000臺機器並破解密碼。 (和你老闆的密碼,那個討厭同事的密碼,...) – Pat 2009-06-15 22:44:03

14

執行下面的查詢

SELECT sjs.command 
FROM msdb.dbo.sysjobs sj 
JOIN msdb.dbo.sysjobsteps sjs ON sj.job_id = sjs.job_id 
WHERE sj.name = 'your package name' 

在結果顯示

檢查文本「/解密」,接下來的下列串是密碼

3

使用此查詢找到你的包密碼:

SELECT step.command 
FROM msdb.dbo.sysjobs job 
JOIN msdb.dbo.sysjobsteps step ON job.job_id = step.job_id 
WHERE step.command like '%Your Package Name%' 

在結果中,唯一顯示的列是命令通過該文本查看/ DECRYPT下一個字符串後,它將是用引號括起來的密碼。

1

只是,在記事本中打開包裝,並更改從2防護等級達到1名

<DTS:Property DTS:Name="ProtectionLevel">1</DTS:Property> 
-1

更改程序包的到encryptsensitiveKey一切都將正常工作。 :)