web-dev-qa-db-fra.com

La connexion a échoué pour l'utilisateur «NT AUTHORITY \ ANONYMOUS LOGON» pour SSIS

J'ai un package SSIS qui effectue la migration des données entre la base de données MySQL et la base de données du serveur SQL. Lorsque je l'exécute manuellement depuis Visual Studio ou depuis SQL Server Management Studio, il s'exécute avec succès. Mais lorsque je le planifie à l'aide du travail de l'agent SQL Server, une erreur se produit.

Description: la connexion a échoué pour l'utilisateur "NT AUTHORITY\ANONYMOUS LOGON". Source: fournisseur de données .Net SqlClient

Quelle est cette erreur? Pourquoi cela ne se produit que lorsque prévu? Comment surmonter ce problème?

4
GihanDB

Vous pourriez avoir affaire à un problème de délégation/usurpation d'identité comme l'a suggéré DimUser.

Si votre SSIS récupère simplement des données d'un serveur de base de données et les livre à l'autre, la solution est beaucoup plus simple et devrait consister à configurer un proxy d'agent SQL Server.

Si vous exécutez manuellement le package SSIS à partir de Visual Studio ou SSMS, le package essaiera vos informations d'identification Windows pour vous connecter à SQL Server. Si votre compte dispose des droits appropriés, il réussira.

Si vous configurez un travail de l'Agent SQL Server pour exécuter ce package, le compte de service exécutant l'Agent SQL Server exécute ce package. Il n'a pas vos informations d'identification Windows, il essaiera donc d'utiliser une connexion anonyme, ce qui entraînera ce message d'erreur.

Pour permettre à l'Agent SQL Server d'exécuter un package à l'aide d'un autre compte, vous devez configurer trois choses:

  1. Créer un justificatif d'identité
  2. Configurer un compte proxy
  3. Configurer l'étape de l'Agent SQL Server pour utiliser le compte proxy

Créer une information d'identification Connectez-vous au serveur SQL qui doit exécuter votre package. Cliquez avec le bouton droit sur la sécurité et sélectionnez "New Credential ...". Saisissez un nom descriptif (nom d'informations d'identification), sélectionnez le compte Windows que vous souhaitez utiliser (identité) et entrez le mot de passe. Cliquez sur OK.

Pour les tests initiaux, vous pouvez utiliser votre propre compte Windows. Pour une utilisation en production, je suggère de créer un compte de service AD ​​dédié (avec des autorisations minimales).

Configurer un compte proxy Développez le dossier de l'Agent SQL Server. Ouvrez Proxy et faites un clic droit sur "Exécution du package SSIS" en sélectionnant "Nouveau proxy ...". Entrez un nom de proxy descriptif et utilisez les informations d'identification que vous avez créées précédemment.

Configurez l'étape de l'Agent SQL Server pour utiliser le compte proxy Ouvrez votre travail d'agent, sélectionnez les propriétés de votre étape exécutant le package SSIS. Vous pouvez maintenant sélectionner votre compte proxy dans la liste déroulante "Exécuter en tant que:".

Configuration supplémentaire: Si votre package est déployé dans le catalogue SSIS, vous devez également accorder à la connexion Windows que vous avez utilisée pour les informations d'identification le rôle "SSIS_Admin" sur SSISDB.

Pour cela, vous devez créer le compte en tant que connexion Windows standard dans SQL Server (Public) et mapper l'utilisateur à SSISDB à l'aide du rôle SSIS_Admin.

2
Thomas Kronawitter