Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelles informations d'identification utilisateur le catalogue Integration Services utilise-t-il pour exécuter les packages ?

Exécutions de packages :

Outils de données SQL Server :

Informations d'identification de l'utilisateur sous lesquelles SQL Server Data Tools (SSDT) fonctionne sera utilisé pour exécuter les packages qui sont exécutés dans SSDT.

Sous Windows Démarrer \ Tous les programmes \ Microsoft SQL Server 2012, si vous cliquez sur Outils de données SQL Server, il s'exécutera sous vos informations d'identification. Pour exécuter sous un compte utilisateur différent, vous pouvez appuyer sur Ctrl + Maj pour sélectionner Run as different user option.

Services de catalogue d'intégration :

Lorsque vous cliquez avec le bouton droit sur un package sous Integration Services Catalog \ SSISDB \ <Folder name> \ Projects \ <Project name> \ Packages \ <Package name> et sélectionnez Execute... pour exécuter un paquet. Le package s'exécutera sous les informations d'identification utilisées pour se connecter à SQL Server Management Studio.

Notez que si vous essayez d'exécuter un package à l'aide de l'authentification SQL Server, vous obtiendrez le message d'erreur ci-dessous :

Après avoir appuyé sur Execute... , SQL Server lance un processus ISServerExec.exe , qui lance un Console Window Host processus :

ISServerExec.exe est un programme qui exécute des packages dans le catalogue SSIS. Dans ce cas, il est lancé sous le même utilisateur qui exécute un package SSIS à partir de SQL Server Management Studio.

Tâche de l'Agent SQL Server sans proxy :

Lorsque vous exécutez un package SSIS à partir d'une tâche de l'Agent SQL Server , l'étape de travail s'exécute par défaut sous SQL Server Agent Service Account . Le compte d'utilisateur associé au service SQL Server Agent peut être trouvé en accédant à Windows Start \ Administrative Tools \ Services , recherchez le service SQL Server Agent (Your Instance Name ) et recherchez le compte utilisateur répertorié sous Log On As

Tâche de l'Agent SQL Server avec proxy :

Vous pouvez également exécuter un travail de l'Agent SQL Server sous différentes informations d'identification en créant un compte proxy. Lorsque les étapes de travail sont exécutées sous un compte proxy, le package de l'étape de travail s'exécute sous les informations d'identification spécifiées sur le compte proxy.

La réponse SO ci-dessous fournit des instructions étape par étape pour créer un compte proxy pour exécuter les travaux de l'Agent SQL Server.

Comment puis-je créer une étape dans mon travail d'agent SQL Server qui exécutera mon package SSIS ?

Comment vérifier :

Exemple de package SSIS 2012 :

Voici ce que j'ai fait pour vérifier les déclarations ci-dessus en ce qui concerne les comptes d'utilisateurs utilisés pour les exécutions de packages.

  • Ouvrez SQL Server Data Tools et créez un package SSIS 2012 nommé SO_15289442.dtsx .

  • Créez une variable nommée ExecutionUser de type de données String . Attribuez l'expression @[System::UserName] à la variable. UserName est une variable système qui fournit les informations de l'utilisateur exécutant le package.

  • Faites glisser et déposez Envoyer la tâche d'e-mail sur le flux de données onglet.

  • Créez une connexion SMTP et attribuez-la à SmtpConnection sur la page Éditeur de tâche d'envoi de courrier - Courrier.

  • Spécifiez le From et To adresses e-mail.

  • Modifier le MessageSourceType à Variable .

  • Définissez le MessageSource à User::ExecutionUser .

  • Cliquez avec le bouton droit sur le package et sélectionnez Déployer pour déployer le projet dans le catalogue Integration Services disponible sur un serveur de votre choix.

Exécutions de packages

  • Exécutez le package dans SSDT.

  • Ouvrez SSDT à l'aide de l'option Exécuter en tant qu'utilisateur différent. Fournissez des informations d'identification différentes des vôtres et exécutez à nouveau le package.

  • Exécutez le package à partir du catalogue Integration Services.

  • Créez une tâche de l'Agent SQL Server pour exécuter le package à l'aide du compte de service de l'Agent SQL Server.

  • Créez une tâche de l'Agent SQL Server pour exécuter le package à l'aide d'un compte proxy.

Pour chaque exécution mentionnée ci-dessus, vous recevrez un e-mail avec le compte utilisateur qui a été utilisé pour exécuter le package.

Votre problème :

Dans votre cas, le package s'exécutera sous votre compte (en supposant que vous utilisez vos informations d'identification pour accéder à SSISDB ) si vous cliquez avec le bouton droit et sélectionnez Exécuter à partir du catalogue Integration Services. Assurez-vous que le compte a accès au chemin réseau.

Si vous exécutez votre package à partir du travail de l'Agent SQL Server, le compte proxy est le run as another user l'option que vous regardez.