2009-06-04 11 views
6

Mam kilka pakietów SSIS, które były chronione hasłem (ich poziom ochrony jest najwyraźniej EncryptAllWithPassword) przez programistę, który opuścił firmę i nie można go już znaleźć, a próba otwarcia powoduje następujący błąd, ponieważ hasło może " t należy dostarczyć:Jak odzyskać lub zresetować hasło do pakietu SSIS?

Error loading „Package.dtsx”: nie udało się usunąć zabezpieczenie pakietu z błędu 0xC0014037 „pakiet jest zaszyfrowany hasłem hasło nie została określona, ​​lub nie jest prawidłowe.. ". Zjawisko to występuje w metodzie CPackage :: LoadFromXML .

Czy istnieje sposób na otwarcie tych paczek? Mam dostęp do konta administratora pierwotnie użytego do utworzenia tych pakietów i mam inne pakiety zaszyfrowane przez tę samą osobę, ale używając innego hasła, które znam.

Skontaktowałem się z lokalnym przedstawicielem firmy Microsoft w tej sprawie i do tej pory powiązali mnie tylko z numerem a page describing how to set or change a password, co nie pomaga, ponieważ muszę najpierw otworzyć pakiet lub podać stare hasło. Czy ktoś był w podobnej sytuacji przed lub zna sposób obejścia tego problemu?

+1

Ała, byłbym zainteresowany, aby poznać odpowiedź na to pytanie również podejrzewam, że nie można zrobić bez jakiejś hack. Nie jest to już pomocne dla ciebie, ale możesz rozważyć użycie hasła Password Safe/Key Manager wewnętrznie wewnątrz organizacji, aby uniknąć tego problemu w przyszłości. –

+0

Dobre pytanie! Czy użyliście w tym jakiejkolwiek bezpiecznej wersji źródła? Możesz być w stanie znaleźć tam niezaszyfrowanej wersji i niektórzy deweloperzy nawet umieścić plik z hasłem ... – RSolberg

Odpowiedz

2

Nie sądzę, że istnieje sposób na odzyskanie pakietu, jeśli użyto EncryptAllWithPassword, cały pakiet jest zaszyfrowany i nie można go odszyfrować bez hasła. Można oczywiście spróbować zgadywania hasła lub ataków słownikowych, mając nadzieję, że programista użyje słabego hasła.

Jeśli jest to EncryptSensitiveWithPassword - można otworzyć, a następnie po prostu wpisać ponownie ciąg znaków połączenia.

1

Wygląda na to, że pakiet był również przechowywany na serwerze SQL (baza danych msdb), eksportowanie go z Integration Services do systemu plików pozwala nam go otworzyć (z ostrzeżeniem o utracie poufnych danych). To rozwiązanie doskonale sprawdza się w tej konkretnej sytuacji; musieliśmy przede wszystkim wiedzieć, co dzieje się w tych pakietach.

+0

Nicea obejścia. –

0

Zgadzam się z komentarzem Michaela o zgadywaniu haseł lub ataku słownikowym jako dobrym podejściu.

Właśnie miałem zasugerować użycie środowiska przetwarzania w chmurze, takiego jak EC2, aby dzielić i podbijać ... ale potem zdałem sobie sprawę, że utknąłeś w oknach!

+0

EC2 również uruchamia system Windows. (http://aws.amazon.com/windows/) A potem jest Azure! (http://www.microsoft.com/azure/) – Michael

+1

, więc gotowe! Wynajmij 1000 maszyn i złam hasło. (i hasło twojego szefa, nienawidzone hasło współpracownika, ...) – Pat

14

wykonać poniższe zapytanie

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' 

W rezultacie View

czek na tekście „/ odszyfrować”, kolejne następujące ciągi są takie hasło

+0

Dziękuję! Dziękuję Ci! Dziękuję Ci! –

+0

Dziękuję Venky, to idealne rozwiązanie dla mnie. – cymorg

+0

Dziękuję @Venky za pomoc z doskonałego rozwiązania kwestii – PS078

3

użyć tej kwerendy, aby znaleźć swój pakiet hasło:

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%' 

W wynikach jedyną kolumną, która została przesunięta, jest polecenie przejrzyj ten tekst dla/DECRYPT następnego ciągu po tym, jak będzie to hasło ujęte w cudzysłowy.

+0

Różnica między moim zapytania i jeden poniżej trzeba umieścić nazwę krok w pracy zamiast nazwy pakietu. Mój przeszuka nazwę paczki. –

1

Wystarczy otworzyć paczkę w notatniku i zmienić poziom zabezpieczenia od 2 do 1

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

Zmienianie pakietu do encrypt z sensitiveKey i wszystko będzie działać dobrze. :)

Powiązane problemy