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?

È stato utile?

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. :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top