Partage via


Gestionnaire de connexions ADO.NET

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Un gestionnaire de connexions ADO.NET permet à un package d'accéder à des sources de données à l'aide d'un fournisseur .NET. En général, vous utilisez ce gestionnaire de connexions pour accéder à des sources de données telles que Microsoft SQL Server. Vous pouvez également accéder à des sources de données exposées via OLE DB et XML dans des tâches personnalisées écrites en code managé dans un langage comme C#.

Lorsque vous ajoutez un gestionnaire de connexions ADO.NET à un package, SQL Server Integration Services crée un gestionnaire de connexions qui sera résolu en connexion ADO.NET au moment de l’exécution. Il définit les propriétés du gestionnaire de connexions et ajoute le gestionnaire de connexions à la collection Connections du package.

La propriété ConnectionManagerType du gestionnaire de connexions a pour valeur ADO.NET. La valeur de ConnectionManagerType est qualifiée de façon à inclure le nom du fournisseur .NET utilisé par le gestionnaire de connexions.

Remarque

Microsoft Entra ID s'appelait Azure Active Directory (Azure AD) jusqu'à une date récente.

Résolution des problèmes liés au gestionnaire de connexions ADO.NET

Le pilote Microsoft.Data.SqlClient n’est pas pris en charge dans SQL 2022 et versions antérieures. Si vous avez besoin d’une méthode d’authentification MSI ou basée sur Microsoft Entra ID, utilisez plutôt le Gestionnaire de connexions Oledb.

Vous pouvez consigner les appels que le gestionnaire de connexions ADO.NET effectue vers les fournisseurs de données externes. Vous pouvez alors résoudre les problèmes liés aux connexions établies par le gestionnaire de connexions ADO.NET avec des sources de données externes. Pour journaliser les appels faits par le gestionnaire de connexions ADO.NET aux fournisseurs de données externes, activez la journalisation des packages et sélectionnez l’événement Diagnostic au niveau du package. Pour plus d’informations, consultez Outils de dépannage pour l’exécution des packages.

Quand elles sont lues par un gestionnaire de connexions ADO.NET, les données de certains types de données de date SQL Server génèrent les résultats présentés dans le tableau ci-après.

Type de données SQL Server Résultats
time, datetimeoffset Le package échoue s'il n'utilise pas de commandes SQL paramétrables. Pour utiliser des commandes SQL paramétrables, utilisez la tâche d'exécution SQL dans votre package. Pour plus d’informations, consultez Tâche d’exécution de requêtes SQL et Paramètres et codes de retour dans la tâche d’exécution SQL.
datetime2 Le gestionnaire de connexions ADO.NET tronque les millisecondes.

Notes

Pour plus d’informations sur les types de données SQL Server et leur mappage aux types de données Integration Services, consultez Types de données (Transact-SQL) et Types de données Integration Services.

Configuration du gestionnaire de connexions ADO.NET

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programmation.

  • Fournissez une chaîne de connexion spécifique configurée de façon à satisfaire les exigences du fournisseur .NET sélectionné.

  • Selon le fournisseur, incluez le nom de la source de données à laquelle se connecter.

  • Fournissez les informations d'identification de sécurité nécessaires selon le fournisseur sélectionné.

  • Indiquez si la connexion créée à partir du gestionnaire de connexions est conservée au moment de l’exécution.

De nombreuses options de configuration du gestionnaire de connexions ADO.NET dépendent du fournisseur .NET utilisé par le gestionnaire de connexions.

Pour plus d’informations sur les propriétés définissables dans le concepteur SSIS, consultez Configurer le gestionnaire de connexions ADO.NET.

Pour plus d’informations sur la configuration d’un gestionnaire de connexions par programmation, consultez ConnectionManager et Ajout de connexions par programme.

Configurer le gestionnaire de connexions ADO.NET

Utilisez la boîte de dialogue Configurer le gestionnaire de connexions ADO.NET pour ajouter une connexion à une source de données accessible à l’aide d’un fournisseur de données .NET Framework. Par exemple, un tel fournisseur est le fournisseur SqlClient. Le gestionnaire de connexions peut utiliser une connexion existante, ou vous pouvez en créer une nouvelle.

Pour en savoir plus sur le gestionnaire de connexions ADO.NET, consultez ADO.NET Connection Manager.

Options

Connexions de données
Sélectionnez une connexion de données ADO.NET existante dans la liste.

Propriétés des connexions de données
Indique les propriétés et les valeurs pour la connexion de données ADO.NET sélectionnée.

Nouveau
Permet de créer une connexion de données ADO.NET via la boîte de dialogue Gestionnaire de connexions .

Supprimer
Sélectionnez une connexion, puis supprimez-la en sélectionnant Supprimer.

Identités managées pour l’authentification des ressources Azure

Lorsque vous exécutez des packages SSIS sur le runtime d’intégration Azure SSIS dans Azure Data Factory (ADF), vous pouvez utiliser l’authentification Microsoft Entra avec l’identité managée système/affectée par l’utilisateur spécifiée pour que votre ADF accède à Azure SQL Database et SQL Managed Instance. Votre Azure-SSIS IR peut accéder à votre base de données et copier des données depuis ou vers celui-ci à l’aide de cette identité managée.

Remarque

Lorsque vous vous authentifiez avec une identité managée affectée par l’utilisateur, SSIS Integration Runtime doit être activé avec la même identité. Pour plus d’informations, consultez Activer l’authentification Microsoft Entra pour Azure-SSIS Integration Runtime.

Pour permettre à votre ADF d’accéder à Azure SQL Database à l’aide de son identité managée, procédez comme suit :

  1. Approvisionnez un administrateur Microsoft Entra pour votre serveur logique dans la base de données Azure SQL par le biais du portail Azure, si vous ne l’avez pas déjà fait. L’administrateur Microsoft Entra peut être un utilisateur ou un groupe. Si vous désignez un groupe comme administrateur et que l’identité managée de votre ADF est membre de ce groupe, vous pouvez ignorer les étapes 2 et 3. L’administrateur aura un accès complet à votre serveur logique.

  2. Créez un utilisateur de base de données autonome pour représenter l’identité managée système/affectée par l’utilisateur spécifiée pour votre ADF. Connectez-vous à la base de données à partir de ou vers laquelle vous souhaitez copier des données à l’aide de SQL Server Management Studio (SSMS) avec une identité Microsoft Entra qui a au moins l’autorisation ALTER ANY USER. Exécutez l’instruction T-SQL suivante :

    CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
    

    Si vous utilisez l’identité managée affectée par le système pour votre ADF, votre nom d’identité managée est votre nom ADF. Si vous utilisez une identité managée affectée par l’utilisateur pour votre ADF, votre nom d’identité managée doit être le nom d’identité managée affecté à l’utilisateur spécifié.

  3. Accordez les autorisations nécessaires à l’identité managée pour votre ADF, comme vous le faites normalement pour les utilisateurs SQL. Pour connaître les rôles appropriés, consultez Rôles au niveau de la base de données. Exécutez l’instruction T-SQL suivante. Pour plus d’options, consultez cet article.

    EXEC sp_addrolemember [role name], [your managed identity name];
    

Pour utiliser une l’identité managée système/affectée par l’utilisateur spécifiée à votre ADF pour accéder à Azure SQL Managed Instance, procédez comme suit :

  1. Approvisionnez un administrateur Microsoft Entra pour votre Azure SQL Managed Instance dans le portail Azure, si vous ne l’avez pas encore fait. L’administrateur Microsoft Entra peut être un utilisateur ou un groupe. Si vous désignez un groupe comme administrateur et que votre identité managée est membre de ce groupe, vous pouvez ignorer les étapes 2 à 4. L’administrateur a un accès total à votre Managed Instance.

  2. Créez une connexion pour l’identité managée de votre ADF. Dans SSMS, connectez-vous à votre instance managée à l’aide d’un compte disposant d’autorisations sysadmin ou de l’administrateur Microsoft Entra. Dans la master base de données, exécutez l’instruction T-SQL suivante :

    CREATE LOGIN [your managed identity name] FROM EXTERNAL PROVIDER;
    

    Si vous utilisez l’identité managée affectée par le système pour votre ADF, votre nom d’identité managée est votre nom ADF. Si vous utilisez une identité managée affectée par l’utilisateur pour votre ADF, votre nom d’identité managée doit être le nom d’identité managée affecté à l’utilisateur spécifié.

  3. Créez un utilisateur de base de données autonome représentant l’identité managée système/affectée par l’utilisateur spécifiée pour votre ADF. Connectez-vous à la base de données à partir de laquelle ou vers laquelle vous souhaitez copier des données avec SSMS et exécutez l’instruction T-SQL suivante :

    CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
    
  4. Accordez les autorisations nécessaires à l’identité managée pour votre ADF, comme vous le faites normalement pour les utilisateurs SQL. Exécutez l’instruction T-SQL suivante. Pour plus d’options, consultez cet article.

    ALTER ROLE [role name e.g., db_owner] ADD MEMBER [your managed identity name];
    

Enfin, vous pouvez configurer l’authentification Microsoft Entra avec l’identité managée de votre ADF sur le gestionnaire de connexion ADO.NET. Les options disponibles sont les suivantes :

  • Effectuez la configuration au moment du design. Dans le concepteur SSIS, cliquez avec le bouton droit sur votre gestionnaire de connexions ADO.NET et sélectionnez Propriétés. Mettez à jour la propriété ConnectUsingManagedIdentity en spécifiant True.

    Remarque

    Actuellement, la propriété ConnectUsingManagedIdentity du gestionnaire de connexion ne prend pas effet lorsque vous exécutez votre package dans le concepteur SSIS ou sur SQL Server, ce qui indique que l’authentification Microsoft Entra avec l’identité managée de votre ADF ne fonctionne pas.

  • Effectuez la configuration au moment de l’exécution. Quand vous exécutez votre package via SSMS ou l’Activité Exécuter le package SSIS dans le pipeline ADF, recherchez le gestionnaire de connexions ADO.NET et mettez à jour sa propriété ConnectUsingManagedIdentity avec la valeur True.

    Remarque

    Sur Azure-SSIS IR, toutes les autres méthodes d’authentification (par exemple, sécurité intégrée et mot de passe) préconfigurées sur votre gestionnaire de connexions ADO.NET sont remplacées lors de l’utilisation de l’authentification Microsoft Entra avec l’identité managée de votre ADF.

Pour configurer l’authentification Microsoft Entra avec l’identité managée de votre ADF sur vos paquets existants, la meilleure façon est de reconstruire votre projet SSIS avec la dernière version du concepteur SSIS au moins une fois. Redéployez votre projet SSIS sur votre runtime d’intégration Azure-SSIS, afin que la nouvelle propriété du gestionnaire de connexions ConnectUsingManagedIdentity soit ajoutée automatiquement à tous les gestionnaires de connexions ADO.NET dans votre projet. L’autre méthode consiste à utiliser directement la substitution de propriété avec le chemin de propriété \Package.Connections[{nom de votre gestionnaire de connexions}].Properties[ConnectUsingManagedIdentity] attribué à True au moment de l’exécution.

Voir aussi