Partager via


Syntaxe de la chaîne de connexion

S'applique à : .NET Framework .NET .NET Standard

Télécharger ADO.NET

Microsoft.Data.SqlClient a un objet Connection qui hérite de DbConnection, ainsi qu’une propriété ConnectionString spécifique au fournisseur. La syntaxe de chaîne de connexion spécifique pour le fournisseur SqlClient est documentée dans sa propriété ConnectionString. Pour plus d'informations sur la syntaxe de chaîne de connexion, consultez ConnectionString.

Générateurs de chaînes de connexion

Le fournisseur de données Microsoft SqlClient pour SQL Server est présenté dans le générateur de chaîne de connexion suivant.

Les générateurs de chaînes de connexion vous permettent de générer des chaînes de connexion syntaxiquement valides lors de l'exécution, vous évitant ainsi d'avoir à concaténer manuellement les valeurs de chaîne de connexion dans votre code. Pour plus d’informations, consultez Builders de chaînes de connexion.

Authentification Windows

Il est recommandé d'utiliser l'authentification Windows, appelée parfois sécurité intégrée, pour se connecter aux sources de données qui la prennent en charge. La table suivante montre la syntaxe d’authentification Windows utilisée avec le Fournisseur de données Microsoft SqlClient pour SQL Server.

Fournisseur Syntaxe
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;

Chaînes de connexion SqlClient

La syntaxe pour une chaîne de connexion SqlConnection est documentée dans la propriété SqlConnection.ConnectionString. La propriété ConnectionString vous permet d'obtenir ou de définir une chaîne de connexion pour une base de données SQL Server. Les mots clés de la chaîne de connexion sont également mappés aux propriétés de SqlConnectionStringBuilder.

Important

La valeur par défaut du mot clé Persist Security Info est false. L'attribution au mot clé de la valeur true ou yes permet d'obtenir de la connexion des informations sensibles pour la sécurité, par exemple l'ID utilisateur et le mot de passe, une fois la connexion ouverte. En attribuant à Persist Security Info la valeur false, vous avez la garantie que la source qui n'est pas digne de confiance n'aura pas accès aux informations sensibles de la chaîne de connexion.

Authentification Windows avec SqlClient

Chacun des formulaires de syntaxe suivants utilise l'authentification Windows pour se connecter à la base de données AdventureWorks sur un serveur local.

"Persist Security Info=False;Integrated Security=true;  
    Initial Catalog=AdventureWorks;Server=MSSQL1;Encrypt=True;"  
"Persist Security Info=False;Integrated Security=SSPI;  
    database=AdventureWorks;server=(local);Encrypt=True;"  
"Persist Security Info=False;Trusted_Connection=True;  
    database=AdventureWorks;server=(local);Encrypt=True;"  

Authentification SQL Server avec SqlClient

L'authentification Windows est la solution préférée pour se connecter à SQL Server. Cependant, si l'authentification SQL Server est requise, utilisez la syntaxe suivante pour spécifier un nom d'utilisateur et un mot de passe. Dans cet exemple, des astérisques servent à représenter un nom d'utilisateur et un mot de passe valides.

"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer;Encrypt=True;"  

Lorsque vous vous connectez à Azure SQL Database ou à Azure Synapse Analytics et fournissez une nom d'utilisateur au format user@servername, assurez-vous que la valeur servername du nom d'utilisateur correspond à la valeur fournie pour Server=.

Notes

L'authentification Windows est prioritaire sur les comptes de connexion SQL Server. Si vous spécifiez Integrated Security=true ainsi qu'un nom d'utilisateur et un mot de passe, ces derniers seront ignorés pour utiliser l'authentification Windows.

Se connecter à une instance nommée de SQL Server

Pour vous connecter à une instance nommée de SQL Server, utilisez la syntaxe du nom du serveur\nom de l'instance.

"Data Source=MySqlServer\MSSQL1;"  

Vous pouvez également définir la propriété DataSource du SqlConnectionStringBuilder sur le nom d'instance lors de la création d'une chaîne de connexion. La propriété DataSource d'un objet SqlConnection est en lecture seule.

Modifications de la version du système de type

Le mot clé Type System Version dans une propriété SqlConnection.ConnectionString spécifie la représentation côté client des types SQL Server. Pour plus d’informations sur le mot clé Type System Version, consultez SqlConnection.ConnectionString.

Connexion et attachement à des instances utilisateur SQL Server Express

Les instances utilisateur sont une fonctionnalité de SQL Server Express. Elles permettent à un utilisateur qui s'exécute sur un compte Windows local disposant de privilèges minimum de se connecter à une base de données SQL Server et de l'exécuter sans nécessiter de privilèges d'administrateur. Une instance utilisateur s'exécute avec les informations d'identification Windows de l'utilisateur, pas en tant que service.

Pour plus d’informations sur l’utilisation des instances utilisateur, consultez Instances utilisateur SQL Server Express.

Utiliser TrustServerCertificate

Le mot clé TrustServerCertificate est utilisé pendant la connexion à une instance SQL Server. Quand TrustServerCertificate est défini sur true, la couche transport utilise TLS/SSL pour chiffrer le canal et contourner l’exploration de la chaîne de certificat pour valider l’approbation.

  • Dans les versions antérieures à Microsoft.Data.SqlClient 2.0, ce paramètre est ignoré quand Encrypt est défini sur False et que le certificat de serveur n’est pas validé.
  • À compter de la version 2.0 de Microsoft.Data.SqlClient, même si Encrypt est défini sur False, le paramètre contrôle si la validation du certificat est effectuée quand le serveur force le chiffrement.
  • À compter de la version 5.0 de Microsoft.Data.SqlClient, ce paramètre est ignoré quand Encrypt est défini sur Strict. Le certificat de serveur est toujours validé en mode Strict.

Pour plus d’informations, consultez Chiffrement et validation des certificats.

"TrustServerCertificate=true;"

HostNameInCertificate

À compter de la version 5.0 de Microsoft.Data.SqlClient, HostNameInCertificate est une nouvelle option de connexion. La validation du certificat de serveur garantit que le nom commun (CN) ou l’autre nom du sujet (SAN) dans le certificat correspond au nom du serveur auquel il est connecté. Dans certains cas, comme les alias DNS, le nom du serveur peut ne pas correspondre au nom CN ou SAN. La valeur HostNameInCertificate peut être utilisée pour spécifier un CN ou SAN différent, attendu dans le certificat de serveur.

"HostNameInCertificate=myserver.example.com"

ServerCertificate

À compter de la version 5.1 de Microsoft.Data.SqlClient, ServerCertificate est une nouvelle option de connexion. La valeur par défaut du paramètre de connexionServerCertificate est une chaîne vide. Quand Encrypt est défini sur Mandatory ou Strict, ServerCertificate peut être utilisé pour spécifier sur le système de fichiers un chemin de fichier de certificat correspondant au certificat TLS du serveur. Pour que le certificat soit valide, le certificat spécifié doit correspondre exactement. Les formats de certificat acceptés sont PEM, DER et CER. Voici un exemple :

"Data Source=...;Encrypt=Strict;ServerCertificate=C:\certificates\server.cer"

Activer le chiffrement

Pour activer le chiffrement quand un certificat n’a pas été provisionné sur le serveur, vous devez définir la propriété de connexion Faire confiance au certificat de serveur sur True. Dans ce cas, le chiffrement utilise un certificat de serveur auto-signé sans validation puisqu’aucun certificat vérifiable n’a été provisionné sur le serveur.

Les paramètres d'application ne peuvent pas réduire le niveau de la sécurité configurée dans SQL Server, mais peuvent éventuellement la renforcer. Une application peut demander le chiffrement en affectant aux mots clés TrustServerCertificate et Encrypt la valeur true, ce qui garantit le chiffrement même si un certificat de serveur n’a pas été approvisionné. Toutefois, si TrustServerCertificate n’est pas activé dans la configuration du client, un certificat de serveur provisionné est toujours nécessaire.

Le tableau ci-dessous décrit tous les cas.

Chiffrer un attribut/une chaîne de connexion Attribut/chaîne de connexion Faire confiance au certificat de serveur Résultats
Non/facultatif Ignoré Aucun chiffrement ne se produit.
Oui/obligatoire Non Le chiffrement se produit uniquement s’il existe un certificat de serveur vérifiable, sinon la tentative de connexion échoue.
Oui/obligatoire Oui Le chiffrement se produit toujours, mais peut utiliser un certificat de serveur auto-signé.
Strict1 Ignoré Le chiffrement se produit toujours et doit utiliser un certificat de serveur vérifiable, sinon la tentative de connexion échoue.

1 Chiffrement strict est disponible uniquement à partir de Microsoft.Data.SqlClient version 5.0.

Pour plus d’informations, notamment sur le comportement dans les versions précédentes, consultez Chiffrement et validation de certificat.

Voir aussi

Chaînes de connexion
Chiffrement et validation de certificat
Connexion à une source de données
Microsoft ADO.NET pour SQL Server