web-dev-qa-db-fra.com

Le gestionnaire de connexion SSIS ne stocke pas le mot de passe SQL

J'avais un dts qui avait une connexion d'authentification serveur SQL. Fondamentalement, le mot de passe utilisateur est stocké dans le package lui-même. Maintenant, lorsque je vais sur SSIS, le mot de passe n'est pas stocké dans le package. J'ai vu cela quand j'ai google le problème. http://social.msdn.Microsoft.com/Forums/en-US/sqlintegrationservices/thread/c720e694-2f58-483a-9cd7-3feb7de2db7b mais personne ne semble avoir donné une bonne résolution Quelqu'un peut-il aider s'il vous plaît? Merci d'avance

29
OpenSource

Cette réponse pointe vers cet article: http://support.Microsoft.com/kb/918760

Voici les solutions proposées - les avez-vous évaluées?

  • Méthode 1: utiliser un compte proxy de l'Agent SQL Server

Créez un compte proxy d'agent SQL Server. Ce compte proxy doit utiliser des informations d'identification permettant à l'Agent SQL Server d'exécuter le travail en tant que compte qui a créé le package ou en tant que compte disposant des autorisations requises.

Cette méthode permet de déchiffrer les secrets et de satisfaire les exigences clés de l'utilisateur. Toutefois, cette méthode peut avoir un succès limité car les clés utilisateur du package SSIS impliquent l'utilisateur actuel et l'ordinateur actuel. Par conséquent, si vous déplacez le package sur un autre ordinateur, cette méthode peut toujours échouer, même si l'étape de travail utilise le compte proxy correct . Retour au début

  • Méthode 2: Définissez la propriété SSIS Package ProtectionLevel sur ServerStorage

Modifiez la propriété SSIS Package ProtectionLevel en ServerStorage. Ce paramètre stocke le package dans une base de données SQL Server et permet le contrôle d'accès via les rôles de base de données SQL Server . Retour au début

  • Méthode 3: Définissez la propriété SSIS Package ProtectionLevel sur EncryptSensitiveWithPassword

Modifiez la propriété SSIS Package ProtectionLevel en EncryptSensitiveWithPassword. Ce paramètre utilise un mot de passe pour le cryptage. Vous pouvez ensuite modifier la ligne de commande de l'étape de travail de l'Agent SQL Server pour inclure ce mot de passe.

  • Méthode 4: Utiliser les fichiers de configuration du package SSIS

Utilisez les fichiers de configuration du package SSIS pour stocker des informations sensibles, puis stockez ces fichiers de configuration dans un dossier sécurisé. Vous pouvez ensuite modifier la propriété ProtectionLevel en DontSaveSensitive afin que le package ne soit pas chiffré et n'essaie pas d'enregistrer des secrets dans le package. Lorsque vous exécutez le package SSIS, les informations requises sont chargées à partir du fichier de configuration. Assurez-vous que les fichiers de configuration sont correctement protégés s'ils contiennent des informations sensibles.

  • Méthode 5: créer un modèle de package

Pour une résolution à long terme, créez un modèle de package utilisant un niveau de protection différent du paramètre par défaut. Ce problème ne se produira pas dans les prochains packages.

26
Sam

Vous pouvez stocker le mot de passe dans la chaîne de configuration en accédant aux propriétés et en ajoutant password = yourpassword mais il est très important de mettre un espace avant "mot de passe" Word et après ";" comme indiqué ci-dessous: 

Data Source=50.21.65.225;User ID=vc_ssis; password=D@mc317Feo; Initial Catalog=Sales;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;Application Name=SSIS-PKG_CustomerData-{2A666833-6095-4486-C04F-350CBCA5C49E}IDM11.Sales.dev;

J'espère que cela vous aidera -- Vijay K

15
VijayK

J'utilise une variable pour stocker la chaîne de connexion complète et la transmettre à l'expression ConnectionString. Ceci écrase tous les paramètres de la connexion et vous permet de stocker le mot de passe.

8
Dave Sexton

Le comportement conçu dans SSIS consiste à empêcher le stockage de mots de passe dans un package, car il est déconseillé de le faire/sans risque. 

Utilisez plutôt l'authentification Windows pour ne pas stocker les secrets dans des packages ou des fichiers de configuration, ou si cela est vraiment impossible dans votre environnement (vous n'avez peut-être pas de domaine Windows, par exemple), vous devez utiliser une solution de contournement, comme décrit dans http://support.Microsoft.com/kb/918760 (Sam est correct, lisez ce qui suit dans cet article). La réponse la plus simple est un fichier de configuration qui accompagne le paquet, mais vous devez vous assurer que le fichier de configuration est stocké de manière sécurisée afin que personne ne puisse simplement le lire et prendre les informations d'identification.

6
onupdatecascade

C'est arrivé avec moi aussi et corrigé de la manière suivante:

Création d'une chaîne de connexion basée sur l'expression et d'un mot de passe enregistré dans une variable et utilisation de celle-ci.

0
Ramanujam Allam

Voici une option plus simple qui fonctionne lorsque je rencontre ceci.

Après avoir créé la connexion, sélectionnez-la et ouvrez les propriétés. Dans la catégorie Expressions, recherchez Mot de passe. Ressaisissez le mot de passe et appuyez sur Entrée. Il sera maintenant sauvegardé dans la connexion.

0
MHeath

Il y a moyen facile de faire ceci. Je ne sais pas pourquoi les gens donnent des réponses compliquées.

Double-cliquez sur le package SSIS. Ensuite, accédez au gestionnaire de connexions, sélectionnez DestinationConnectionOLDB, puis ajoutez le mot de passe en regard du champ de connexion.

Exemple: Data Source=SysproDB1;User ID=test;password=test;Initial Catalog=ASBuiltDW;Provider=SQLNCLI11;Auto Translate=false;

Faites de même pour SourceConnectionOLDB.

0
Tarak

Veuillez vérifier le fichier de configuration dans le projet, y définir l'ID et le mot de passe, afin d'exécuter le package.

0
Prabish VT