Comment utiliser DontSaveSensitive et le fichier de configuration xml cours de package SSIS de développement
Est-il somhow possible de régler la ProtectionLevel de package SSIS pour DontSaveSensitive et à utiliser la chaîne de connexion avec un mot de passe de fichier de configuration au cours du développement dans Visual Studio?
J'ai package par exemple Package1 avec ProtectionLevel = DontSaveSensitive. Ce package utilise la connexion du gestionnaire de connexion par exemple Connection1.
Package1 de configuration activé à l'aide du fichier de configuration fichier1.dtsConfig avec la chaîne de connexion spécifié. Cette chaîne de connexion le mot de passe:
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="..." GeneratedFromPackageName="..." GeneratedFromPackageID="..." GeneratedDate="20.3.2013 12:08:27"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Connections[Destination].Properties[ConnectionString]" ValueType="String">
<ConfiguredValue>Data Source=.;Password=Password123;User ID=MyUser;Initial Catalog=Catalog;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;</ConfiguredValue>
</Configuration>
</DTSConfiguration>
Maintenant, lors de l'ouverture de la connexion à partir du gestionnaire de connexion dans Visual Studio, le champ de texte pour le Mot de passe est vide et le paquet ne débite pas exécuter. Pourquoi vous n'avez pas utilisé le mot de passe spécifié dans la chaîne de connexion dans le fichier de configuration fichier1.dtsConfig?
OriginalL'auteur dee | 2013-03-20
Vous devez vous connecter pour publier un commentaire.
Enfin, nous avons trouvé une façon de le faire:
Alors package SSIS charge de la chaîne de connexion inclusive mot de passe dans le fichier de configuration, même dans Visual Studio. Dans le gestionnaire de connexion-connexion de la boîte de dialogue du mot de passe ne sera pas indiqué, mais le paquet s'exécute à l'aide de la chaîne de connexion de la configuration.
EncryptSensitiveWithUserKey
est lorsque vous partagez votre colis à quelqu'un d'autre ou un autre utilisateur tente d'exécuter votre forfait ,l'exécutionfail
. Cette option doit être utilisée lorsque vous n'avez pas de plan pour déployer votre colis ou intégrer votre colis avec votre équipe ou de donner l'autorisation à d'autres utilisateurs d'exécuter votre colis quand u déployer dans sql server ou du système de fichiersBien, mais je suis en utilisant les paquets cretaed par un autre utilisateur sur un autre PC avec les paramètres de EncryptSensitiveWithUserKey sur mon PC dès maintenant. Quand j'ai précisé le fichier de configuration, la chaîne de connexion est maintenant lu à partir de la config (pas de l'emballage) et de l'exécution du package ok, même le niveau de protection est défini EncryptSensitiveWithUserKey et je ne suis pas l'auteur du paquet.
Cela semble bizarre . voir cet article mssqltips.com/sqlservertip/2091/...
J'ai lu ce post avant de poster cette question sur. Son bon article, mais il dosn pas dire n'importe quoi sur ProtectionLevel lorsque le package de configuration est activé. Ici, msdn.microsoft.com/en-us/library/cc895212.aspx vous pouvez lire: "Lorsque vous ajoutez des configurations à un package, vous êtes essentiellement d'exposer les propriétés et leur permettant d'être mis à jour avec une nouvelle valeur à partir d'un fichier ...". Si vous "exposer" les chaînes de connexion et l'ajouter manuellement des mots de passe dans le fichier de configuration, puis ceux de la chaîne de connexion qui sera utilisée. Je vais faire des tests un peu plus demain...
OriginalL'auteur dee
SSIS prendra la chaîne de connexion à partir de la
Config File
seulement au cours de laruntime
.Même si vous cochez la caseSave my Password
, SSIS de ne pas enregistrer le mot de passe de la valeur.Cette option est vald'seulement au cours de laBIDS session
. Donc, la prochaine fois lorsque vous ouvrez le package à l'aide deBIDS
,encore une fois, vous devez entrer les informations d'identification dansVisual Studio
d'autre que le paquet n'est pascompile
,Mais le paquet sera toujours exécuté correctement pendantrun time
si vous avez spécifié leconnection string
dansconfig file
.Comme par MSDN il indique clairement que
OriginalL'auteur praveen
C'est le cas également lorsque le paquet a été mis au premier à utiliser EncryptSensitiveWithUserKey, puis a changé de DontSaveSensitive -niveau de protection. Vous devez modifier manuellement .conmgr-fichier et supprimer DTS:éléments du Mot de passe et de mettre le mot de passe dans la chaîne de connexion en tant qu'utilisateur dee a judicieusement écrit ci-dessus.
OriginalL'auteur RonVibbentrop