La connectivité des bases de données est devenue un aspect standard du développement d'applications. Les chaînes de connexion à la base de données sont désormais un standard indispensable pour chaque projet. Je me retrouve souvent à copier une chaîne de connexion depuis une autre application ou à effectuer une recherche pour trouver la syntaxe dont j'ai besoin. Cela est particulièrement vrai lors de l'interopérabilité avec SQL Server, qui propose de nombreuses options de chaîne de connexion. Examinons maintenant les nombreux aspects des chaînes de connexion.
chaîne de connexion
Lors de l'instanciation ou de la création d'un objet, la chaîne de connexion à la base de données est transmise à l'objet nécessaire via des propriétés ou des méthodes. Le format de la chaîne de connexion est une liste de paires de paramètres clé/valeur, séparées par des points-virgules. Le listing A inclut un exemple en C# qui illustre comment se connecter à SQL Server en créant un objet SqlConnection (la chaîne de connexion réelle est attribuée via la propriété ConnectionString de l'objet). La version de VB.NET est incluse dans le listing B.
Liste A
string cString = "Source de données=serveur;Catalogue initial=db;ID utilisateur=test;Mot de passe=test;";
SqlConnectionconn = new SqlConnection();
conn.ConnectionString = cString;
conn.Open();
Liste B
Dim cString comme chaîne
cString = "Source de données=serveur ;Catalogue initial=base de données;ID utilisateur=test;Mot de passe=test;"
Dim conn As SqlConnection = New SqlConnection()
conn.ConnectionString = cString
conn.Open()
La chaîne de connexion spécifie le serveur de base de données et la base de données, ainsi que le nom d'utilisateur et le mot de passe nécessaires pour accéder à la base de données. Bien que ce format ne soit pas adapté à toutes les interactions avec les bases de données, il propose de nombreuses options, dont beaucoup ont des synonymes.
Outre les éléments Source de données, Catalogue initial, ID utilisateur et Mot de passe, les options suivantes sont disponibles :
Nom de l'application : Le nom de l'application. Si elle n’est pas spécifiée, sa valeur est le fournisseur de données .NET SqlClient.
AttachDBFilename/propriétés étendues/Nom du fichier initial : nom du fichier principal qui peut être connecté à la base de données, y compris le nom de chemin complet. Le nom de la base de données doit être spécifié avec le mot clé base de données.
Délai d'expiration de la connexion/Délai d'expiration de la connexion : durée (en secondes) pendant laquelle une connexion au serveur attend avant de se terminer. La valeur par défaut est 15.
Durée de vie de la connexion : lorsqu'une connexion est renvoyée au pool de connexions, son heure de création est comparée à l'heure actuelle. Si ce laps de temps dépasse la durée de validité de la connexion, la connexion est annulée. Sa valeur par défaut est 0.
Réinitialisation de la connexion : indique si une connexion est réinitialisée lorsqu'elle est supprimée du pool de connexions. Une valeur false valid élimine le besoin d'un aller-retour supplémentaire sur le serveur lors de l'obtention d'une connexion, et sa valeur par défaut est true.
Langue actuelle : nom de l'enregistrement de langue SQL Server.
Source de données/Serveur/Adresse/Adresse/Adresse réseau : nom ou adresse réseau de l'instance SQL Server.
Chiffrer (chiffrement) : lorsque la valeur est vraie, SQL Server utilisera le cryptage SSL pour toutes les données transférées entre le client et le serveur si le serveur dispose d'un certificat autorisé installé. Les valeurs acceptées sont vraies, fausses, oui et non.
Enlist (enregistrement) : Indique si le programme du pool de connexions enregistrera automatiquement la connexion dans le contexte de transaction actuel du thread de création. Sa valeur par défaut est true.
Base de données/Catalogue initial : nom de la base de données.
Sécurité intégrée/Connexion approuvée : indique si l'authentification Windows est utilisée pour se connecter à la base de données. Il peut être défini sur true, false ou l'équivalent sspi de true. Sa valeur par défaut est false.
Taille maximale du pool (capacité maximale du pool de connexions) : Le nombre maximum de connexions autorisées par le pool de connexions. Sa valeur par défaut est 100.
Min Pool Size (capacité minimale du pool de connexions) : nombre minimum de connexions autorisées par le pool de connexions, et sa valeur par défaut est 0.
Bibliothèque réseau/Net : bibliothèque réseau utilisée pour établir une connexion à une instance SQL Server. Les valeurs prises en charge incluent : dbnmpntw (Named Pipes), dbmsrpcn (Multiprotocol/RPC), dbmsvinn (Banyan Vines), dbmsspxn (IPX/SPX) et dbmssocn (TCP/IP). La bibliothèque de liens dynamiques du protocole doit être installée pour la connexion appropriée ; sa valeur par défaut est TCP/IP.
Taille des paquets : taille des paquets réseau utilisés pour communiquer avec la base de données. Sa valeur par défaut est 8192.
Mot de passe/Pwd : Le mot de passe correspondant au nom du compte.
Conserver les informations de sécurité : utilisé pour déterminer si les informations de sécurité sont disponibles une fois la connexion établie. Si la valeur est vraie, les données sensibles à la sécurité telles que les noms d'utilisateur et les mots de passe sont disponibles, tandis que si la valeur est fausse, elles ne sont pas disponibles. La réinitialisation de la chaîne de connexion reconfigurera toutes les valeurs de la chaîne de connexion, y compris le mot de passe. Sa valeur par défaut est false.
Pooling : détermine s’il faut utiliser le pooling de connexions. Si cela est vrai, la connexion sera obtenue à partir du pool de connexions approprié ou, si nécessaire, la connexion sera créée et ajoutée au pool de connexions approprié. Sa valeur par défaut est vraie.
ID utilisateur : Le nom du compte utilisé pour se connecter à la base de données.
ID du poste de travail : nom du poste de travail connecté à SQL Server. Sa valeur par défaut est le nom de l'ordinateur local.
La chaîne de connexion suivante établit une connexion à la base de données Northwind sur le serveur TestDev1 à l'aide d'une connexion approuvée et d'informations de connexion spécifiées (moins sécurisées que de laisser le mot de passe administrateur vide) : Server=TestDev1;Database=Northwind;User ID=sa ;
Mot de passe=;Trusted_Connection=True;
La chaîne de connexion suivante utilise TCIP/IP et une adresse IP spécifique :
Source de données = 192.162.1.100,1433 ; Bibliothèque réseau = DBMSSOCN ;
Catalogue initial=Northwind;ID utilisateur=sa;Mot de passe=;
Les options utilisées peuvent facilement être incluses dans la chaîne de connexion, mais elles dépendent là encore de votre application et de ses exigences. Il est bon de savoir ce qui est disponible afin de pouvoir l'utiliser de manière appropriée.
Utilisation d'ADO.NET 2.0
ADO.NET 2.0 introduit de nouveaux générateurs de chaînes de connexion pour chaque fournisseur de données .NET Framework. Les mots clés sont répertoriés sous forme d'attributs, permettant à la syntaxe de la chaîne de connexion de prendre effet avant d'être soumise à la source de données. Il existe également de nouvelles classes qui facilitent le stockage et la récupération des chaînes de connexion dans les fichiers de configuration, ainsi que leur chiffrement de manière protégée.