Question

J'ai quelques packages SSIS qui ont été protégés par mot (leur niveau de protection est apparemment EncryptAllWithPassword) par un développeur qui a quitté l'entreprise et ne peut être atteint plus, et d'essayer de les ouvrir donne l'erreur suivante puisque le mot de passe peut « t fournir:

  

loading Erreur 'Package.dtsx': impossible de supprimer la protection de l'emballage   avec l'erreur 0xC0014037 « Le paquet est   crypté avec un mot de passe. le   mot de passe n'a pas été spécifié, ou non   correct. ". Cela se produit dans la   méthode CPackage :: LoadFromXML.

Y at-il un moyen d'ouvrir ces paquets? J'ai accès au compte de l'administrateur à l'origine utilisé pour créer ces packages et ont d'autres paquets cryptés par la même personne, mais en utilisant un mot de passe différent que je sais.

J'ai contacté un représentant local Microsoft sur la question et jusqu'à présent, ils ont fait que me lié à une

Autres conseils

exécuter la requête ci-dessous

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'

Dans la vue Résultat

vérifier le texte « / Déchiffrer », les prochaines chaînes suivantes sont le mot de passe

Utilisez cette requête pour trouver votre mot de passe package:

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

Dans les résultats de la seule colonne displated est de regarder de commande à travers ce texte / déchiffré la chaîne suivante après sera le mot de passe ci-joint entre guillemets.

Il semble que le paquet a été également stocké sur le serveur SQL (base de données msdb), exporter à partir des services d'intégration dans le système de fichiers permet d'ouvrir (avec un avertissement sur la perte de données sensibles). Cette solution fonctionne parfaitement pour cette situation particulière; nous avions besoin surtout de savoir ce qui se passe dans ces paquets.

Just, ouvrir le paquet dans le bloc-notes et modifier le niveau de protection 2-1

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

Je suis d'accord avec le commentaire de Michael au sujet d'un mot de passe deviner ou attaque par dictionnaire comme une bonne approche.

J'étais sur le point de proposer également d'utiliser un environnement de cloud computing comme EC2 pour diviser et conquérir ... mais je me suis aperçu que vous êtes coincé sur les fenêtres!

Changer le Protection level du paquet à encrypt avec sensitiveKey et tout ira bien fonctionner. :)

scroll top