Come recuperare o Reset Pacchetto SSIS password?
-
09-09-2019 - |
Domanda
Ho un paio di pacchetti SSIS che sono stati protetti da password (il loro livello di protezione è apparentemente EncryptAllWithPassword) da uno sviluppatore che ha lasciato l'azienda e non può essere raggiunto più, e cercando di aprirle dà il seguente errore dal momento che la password può 't essere forniti:
Errore durante il caricamento 'Package.dtsx': Impossibile rimuovere la protezione pacchetto con errore 0xC0014037 "Il pacchetto è criptato con una password. Il la password non è stata specificata, o non è corretto. ". Ciò si verifica nel Metodo CPackage :: LoadFromXML.
C'è un modo per aprire questi pacchetti? Ho accesso all'account amministratore originariamente utilizzato per creare questi pacchetti e hanno altri pacchetti criptati dalla stessa persona, ma utilizzando una password diversa, che io sappia.
ho contattato un rappresentante locale di Microsoft in merito alla questione e finora mi hanno legato solo a una una pagina che descrive come impostare o modificare una password di , che non aiuta perché ho bisogno di aprire il pacchetto prima o fornire la vecchia password. Qualcuno ha trovato in una situazione simile prima o conosce un modo per aggirare questo problema?
Soluzione
Non credo che ci sia alcun modo per recuperare il pacchetto se si utilizza EncryptAllWithPassword, l'intero pacchetto è crittografato, e non può essere decodificato, senza password. Si può provare di una password naturalmente indovinare o attacchi di dizionario sperando lo sviluppatore utilizzato password debole.
Se è EncryptSensitiveWithPassword -. È possibile aprire e poi basta digitare nuovamente la password stringa di connessione
Altri suggerimenti
eseguire la query seguente
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'
Nel Risultato Visualizza
Controlla il testo "/ decifrare", i prossimi seguenti stringhe sono la password
Utilizzare questa query per trovare la password del pacchetto:
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%'
Nei risultati l'unica colonna displated è comando sguardo attraverso quel testo per / decifrare la stringa seguente dopo sarà la password racchiuso tra virgolette.
Sembra che il pacchetto è stato anche memorizzato in SQL Server (database msdb), esportandolo da Integration Services nel file system permette di aprirlo (con un avvertimento di perdere i dati sensibili). Questa soluzione funziona perfettamente per questa particolare situazione; abbiamo principalmente bisogno di sapere ciò che accade in questi pacchetti.
Basta, aprire il pacchetto in blocco note e modificare il livello di protezione 2-1
<DTS:Property DTS:Name="ProtectionLevel">1</DTS:Property>
Sono d'accordo con il commento di Michael circa una password guessing o un attacco dizionario come essere un buon approccio.
Stavo per suggerire anche utilizzando un ambiente di cloud computing come EC2 di dividere e conquistare ... ma poi ho capito che si sono bloccati sulle finestre!
Cambia il Protection level
del pacchetto per encrypt
con sensitiveKey
e tutto funzionerà bene.
:)