Package SSIS ne s'exécute pas lorsqu'elle est appelée à partir d'une étape de travail de l'Agent de SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 918760 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque vous appelez un package Microsoft SQL Server 2005 Integration Services (SSIS) à partir d'une étape de travail de l'Agent SQL Server, le package SSIS ne s'exécute pas. Toutefois, si vous ne modifiez pas le package SSIS, il fonctionnera correctement en dehors de l'Agent de SQL Server.

Résolution

Pour résoudre ce problème, appliquez l'une des méthodes suivantes. La méthode la plus appropriée dépend de l'environnement et la raison pour laquelle le package a échoué. Voici les raisons pour lesquelles le package a échoué :
  • Le compte d'utilisateur utilisé pour exécuter le package sous SQL Server Agent diffère de l'auteur du package d'origine.
  • Le compte d'utilisateur n'a pas les autorisations requises pour établir des connexions ou d'accéder aux ressources en dehors du package SSIS.
Le package ne peut pas exécuter dans les scénarios suivants :
  • L'utilisateur actuel ne peut pas décrypter les secrets à partir du package. Ce scénario peut se produire si le compte courant ou le compte d'exécution diffère de l'auteur du package d'origine et paramètre de la propriété ProtectionLevel d'un package ne permet pas l'utilisateur actuel décrypter les secrets dans le package.
  • Une connexion SQL Server qui utilise la sécurité intégrée ne fonctionne pas car l'utilisateur actuel ne dispose pas des autorisations requises.
  • Accès au fichier échoue parce que l'utilisateur actuel n'a pas les autorisations requises pour écrire dans le partage de fichiers qui accède à la connection manager. Par exemple, ce scénario peut se produire avec les fournisseurs de journal de texte qui n'utilisent pas un nom d'utilisateur et un mot de passe. Ce scénario peut également se produire avec n'importe quelle tâche dont dépend le Gestionnaire de connexions de fichier, tel qu'une tâche de système de fichier SSIS.
  • Une configuration basée sur le Registre de package SSIS utilise les clés de Registre HKEY_CURRENT_USER. Les clés de Registre HKEY_CURRENT_USER sont spécifiques à l'utilisateur.
  • Une tâche ou un gestionnaire de connexions nécessite que le compte d'utilisateur en cours dispose des autorisations correctes.
Méthode 1: Utiliser un compte proxy de l'Agent de SQL Server

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

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

Méthode 4: Fichiers de configuration de Package SSIS d'utilisation

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

Statut

Ce comportement est voulu par la conception.

Informations avancées

Procédure pour reproduire le problème

  1. Ouvrez une session en tant qu'utilisateur qui ne fait pas partie du groupe SQLServer2005SQLAgentUser. Par exemple, vous pouvez créer un utilisateur local.
  2. Créer un package SSIS, puis ajoutez une tâche ExecuteSQL. Utilisez un gestionnaire de connexions OLE DB pour le fichier msdb local à l'aide de la chaîne suivante : Authentification de Windows -SQLSourceType: « Direct Input » -SQLStatement: « sp_who »
  3. Exécutez le package pour vous assurer qu'il fonctionne correctement.
  4. Notez que la propriété ProtectionLevel a la valeur EncryptSensitiveWithPassword.
  5. Créer un travail d'Agent de SQL Server et une étape de travail. Dans le Exécuter en tant que Cliquez sur Service de l'Agent de SQL Server Pour exécuter l'étape du travail.
Le texte de l'historique du travail de l'Agent SQL Server affiche des informations semblables aux suivantes :

Exécuté en tant qu'utilisateur : domaine\nom d'utilisateur. Échec de l'exécution du package. L'étape a échoué.

Décrypter les secrets de package

Le paramètre par défaut pour la propriété ProtectionLevel de package SSIS est EncryptSensitiveWithUserKey. Lorsque le lot est enregistré, SSIS crypte uniquement les parties du package qui contiennent des propriétés qui sont marqués comme « sensibles » comme mots de passe, noms d'utilisateur et chaînes de connexion. Par conséquent, lorsque le package est rechargé, l'utilisateur en cours doit respecter les exigences de cryptage pour les propriétés sensibles afin d'être décrypté. Toutefois, l'utilisateur actuel n'a pas satisfaire aux exigences de cryptage pour charger le package. Lorsque vous exécutez le package via une étape de travail de l'Agent SQL Server, le compte par défaut est le compte de Service de l'Agent de SQL Server. Ce compte par défaut est probablement un utilisateur autre que l'auteur du package. Par conséquent, l'étape de travail de l'Agent de SQL Server pouvez charger et démarrer pour exécuter l'étape du travail, mais le lot échoue, car il ne peut pas terminer une connexion. Par exemple, le package ne peut pas terminer une connexion OLE DB ou une connexion FTP. Le lot échoue, car il ne peut pas décrypter les informations d'identification nécessaires pour se connecter.

Important Tenez compte du processus de développement et l'environnement afin de déterminer les comptes qui sont nécessaires et utilisés sur chaque ordinateur. Le paramètre EncryptSensitiveWithUserKey de la propriété ProtectionLevel est un puissant. Ce paramètre ne doit pas être actualisé car elle provoque des complications de déploiement dans un premier temps. Vous pouvez crypter les packages lorsque vous êtes connecté au compte approprié. Vous pouvez également utiliser l'utilitaire de ligne de commande SSIS Dtutil.exe modifier les niveaux de protection en utilisant un fichier .cmd et le sous-système de commande de l'Agent de SQL Server. Par exemple, procédez comme suit. Car vous pouvez utiliser l'utilitaire Dtutil.exe dans les boucles et les fichiers de commandes, vous pouvez suivre ces étapes pour plusieurs packages en même temps.
  1. Modifier le package que vous souhaitez crypter à l'aide d'un mot de passe.
  2. Utiliser l'utilitaire Dtutil.exe via une Système d'exploitation (cmd Exec) Étape de travail de l'Agent SQL Server pour modifier la propriété ProtectionLevel EncryptSensitiveWithUserKey. Ce processus implique de décryptage du package en utilisant le mot de passe, puis RE-le package. La clé utilisateur qui est utilisée pour crypter le package est l'étape de travail de l'Agent de SQL Server dans leExécuter en tant que liste.

    Remarque : Car la clé comprend le nom d'utilisateur et le nom d'ordinateur, l'effet de déplacer les packages vers un autre ordinateur peut être limitée.

Assurez-vous que vous avez erreur informations détaillées sur l'échec de package SSIS

Plutôt que d'utiliser les détails limités dans l'historique du travail SQL Server l'Agent, vous pouvez utiliser SSIS enregistrement pour vous assurer que vous disposez des informations sur l'échec de package SSIS. Vous pouvez également exécuter le package en utilisant la commande de sous-système exec au lieu de la commande de sous-système SSIS.

Sur la journalisation SSIS

Fournisseurs de journaux et journalisation SSIS vous permettent de capturer plus d'informations sur l'exécution du package et les échecs. Par défaut, le package n'enregistre pas d'informations. Vous devez configurer le package pour enregistrer des informations. Lorsque vous configurez le package pour enregistrer des informations, des informations détaillées sont affiche semblable au suivant. Dans ce cas, vous savez qu'il s'agit d'un problème d'autorisations :

OnError, NomDomaine, NomDomaine\NomUtilisateur, FTP Task,{C73DE41C-D0A6-450A-BB94-DF6D913797A1},{2F0AF5AF-2FFD-4928-88EE-1B58EB431D74},4/28/2006 1: 51 : 59 PM 28/4/2006: 1: 51 : 59 PM,-1073573489, 0 x, Impossible de se connecter au serveur FTP à l'aide de « FTP Connection Manager ».

OnError, NomDomaine, NomDomaine\NomUtilisateur, Execute SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4: 07 : 00 PM, 28/4/2006: 4: 07 : 00 PM,-1073573396, 0 x, Impossible d'acquérir la connexion « user01.msdb ». Connexion n'est pas configurée correctement ou que vous n'ayez pas les autorisations appropriées sur cette connexion.

À propos de la commande de sous-système exec et les informations de sortie

En utilisant l'approche de commande de sous-système exec, vous ajoutez la console verbose logging des commutateurs à la ligne de commande SSIS pour appeler le fichier exécutable de ligne de commande SSIS Dtexec.exe. En outre, vous utilisez la fonctionnalité de travail avancé du fichier de sortie. Vous pouvez également utiliser le Inclure la sortie de l'étape dans l'historique option pour rediriger les informations de journalisation dans un fichier ou à l'historique du travail de l'Agent SQL Server.

Voici un exemple de ligne de commande :

dtexec.exe /FILE 
"C:\_work\SSISPackages\ProtectionLevelTest\ProtectionLevelTest\AgentTesting.dtsx" /MAXCONCURRENT " -1 
" /CHECKPOINTING OFF  /REPORTING V  /CONSOLELOG NCOSGXMT


La journalisation /console renvoie détails semblables aux suivants :

Error: 2006-04-27 18:13:34.76
   Code: 0xC0202009
   Source: AgentTesting Connection manager "(local).msdb"
   Description: An OLE DB error has occurred. Error code: 0x80040E4D.
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80040E4D  Description: "Login failed for user 'DOMAINNAME\username'.".
End Error


Error: 2006-04-28 13:51:59.19
   Code: 0xC0016016
   Source:  
   Description: Failed to decrypt protected XML node "DTS:Property" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.
End Error


Log:
     Name: OnError
     Computer: COMPUTERNAME
     Operator: DOMAINNAME\username
     Source Name: Execute SQL Task
     Source GUID: {C6C7286D-57D4-4490-B12D-AC9867AE5762}
     Execution GUID: {7AFE3D9E-5F73-42F0-86FE-5EFE264119C8}
     Message: Failed to acquire connection "(local).msdb". Connection may not be configured correctly or you may not have the right permissions on this connection.
     Start Time: 2006-04-27 18:13:34
     End Time: 2006-04-27 18:13:34
End Log

Références

Pour plus d'informations sur un problème semblable, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
904800Vous recevez un message d'erreur « Erreur de chargement » lorsque vous essayez d'exécuter un package SQL Server 2005 Integration Services dans SQL Server 2005
Pour plus d'informations sur comment utiliser l'utilitaire Dtutil.exe dans les opérations de traitement par lots, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
906562Comment utiliser l'utilitaire dtutil (Dtutil.exe) pour définir le niveau de protection d'un lot de packages Integration Services (SSIS) de SQL Server dans SQL Server 2005
Pour plus d'informations sur la création de modèles de lot, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
908018Comment créer un modèle de lot dans SQL Server Business Intelligence Development Studio


Pour plus d'informations sur la sécurité de package SSIS et de la propriété ProtectionLevel , consultez la rubrique « Sécurité considérations pour Integration Services » dans la documentation en ligne de SQL Server 2005.

Malheureusement, les utilisateurs ne sont pas conscients que paramètres l'étape du travail d'agent par défaut les placer dans cet état. Pour plus d'informations sur les serveurs proxy de l'Agent SQL Server et SSIS, consultez les rubriques suivantes dans la documentation en ligne de SQL Server 2005 :
  • Planification de l'exécution du package dans l'Agent de SQL Server
  • Création de proxys d'Agent de SQL Server

Propriétés

Numéro d'article: 918760 - Dernière mise à jour: vendredi 12 juillet 2013 - Version: 1.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2008 Service Pack 1
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2005 Service Pack 3
  • Microsoft SQL Server 2005 Service Pack 2
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
Mots-clés : 
kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 918760
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com