Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article liste tous les mots-clés de chaîne de connexion que Microsoft. Data.SqlClient accepte. Chaque mot-clé possède également une propriété de correspondance SqlConnectionStringBuilder . Pour une introduction, des motifs courants et des règles d’analyse, voir Chaînes de connexion.
Les mots-clés et alias ne sont pas sensibles à la majuscule. Lorsque vous fixez une valeur via un bien constructeur, celui-ci écrit le mot-clé canonique dans la colonne Mot-clé .
Définir des options avec SqlConnectionStringBuilder
Commencez par une chaîne de connexion de base qui contient les paramètres serveur, de base de données et d’authentification. Ensuite, définissez des options spécifiques à la charge de travail via les propriétés du constructeur. Les onglets du cadre .NET utilisent C# 7.3. Pour créer un projet qui exécute les échantillons, voir Créer le projet.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("SQL_CONNECTION_STRING")
?? throw new InvalidOperationException(
"Set the SQL_CONNECTION_STRING environment variable.");
var builder = new SqlConnectionStringBuilder(connectionString)
{
ApplicationName = "Orders.Worker",
ConnectTimeout = 30,
CommandTimeout = 60,
MaxPoolSize = 50,
};
await using var connection = new SqlConnection(builder.ConnectionString);
await connection.OpenAsync();
await using var command = new SqlCommand("SELECT APP_NAME();", connection);
Console.WriteLine($"APP_NAME(): {await command.ExecuteScalarAsync()}");
Console.WriteLine($"Connection timeout: {connection.ConnectionTimeout}");
Console.WriteLine($"Command timeout: {command.CommandTimeout}");
La sortie est la suivante :
APP_NAME(): Orders.Worker
Connection timeout: 30
Command timeout: 60
Un nouveau SqlCommand prend son délai d’expiration par défaut à partir du Command Timeout mot-clé de sa connexion.
Vérifier les valeurs par défaut
Un nouveau SqlConnectionStringBuilder signale le défaut pour chaque option. Ce programme affiche les paramètres par défaut que la plupart des applications examinent :
using Microsoft.Data.SqlClient;
var defaults = new SqlConnectionStringBuilder();
Console.WriteLine($"Connect Timeout: {defaults.ConnectTimeout}");
Console.WriteLine($"Command Timeout: {defaults.CommandTimeout}");
Console.WriteLine($"Connect Retry Count: {defaults.ConnectRetryCount}");
Console.WriteLine($"Connect Retry Interval: {defaults.ConnectRetryInterval}");
Console.WriteLine($"Encrypt: {defaults.Encrypt}");
Console.WriteLine($"Trust Server Certificate: {defaults.TrustServerCertificate}");
Console.WriteLine($"Pooling: {defaults.Pooling}");
Console.WriteLine($"Min Pool Size: {defaults.MinPoolSize}");
Console.WriteLine($"Max Pool Size: {defaults.MaxPoolSize}");
Console.WriteLine($"Connection Idle Timeout: {defaults.IdleTimeout}");
Console.WriteLine($"Load Balance Timeout: {defaults.LoadBalanceTimeout}");
Console.WriteLine($"Packet Size: {defaults.PacketSize}");
Console.WriteLine($"Multi Subnet Failover: {defaults.MultiSubnetFailover}");
Console.WriteLine($"IP Address Preference: {defaults.IPAddressPreference}");
Console.WriteLine($"Pool Blocking Period: {defaults.PoolBlockingPeriod}");
Console.WriteLine($"Application Intent: {defaults.ApplicationIntent}");
Console.WriteLine($"Application Name: {defaults.ApplicationName}");
Console.WriteLine($"Type System Version: {defaults.TypeSystemVersion}");
Console.WriteLine($"Transaction Binding: {defaults.TransactionBinding}");
Sur .NET, la sortie est :
Connect Timeout: 15
Command Timeout: 30
Connect Retry Count: 1
Connect Retry Interval: 10
Encrypt: True
Trust Server Certificate: False
Pooling: True
Min Pool Size: 0
Max Pool Size: 100
Connection Idle Timeout: 300
Load Balance Timeout: 0
Packet Size: 8000
Multi Subnet Failover: False
IP Address Preference: IPv4First
Pool Blocking Period: Auto
Application Intent: ReadWrite
Application Name: Core Microsoft SqlClient Data Provider
Type System Version: Latest
Transaction Binding: Implicit Unbind
Encrypt: True c’est l’option Mandatory . Sur .NET Framework, le nom d’application par défaut est Framework Microsoft SqlClient Fournisseur de données.
Options serveurs et bases de données
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Data Source |
Server, Address, Addr, Network Address |
DataSource |
Vide | Le serveur auquel se connecter. Accepte un nom d’hôte, host,port, host\instance, (localdb)\instance, et un tcp: préfixe de protocole or np: . Pour les formulaires acceptés, voir Spécifier le serveur et la base de données. |
Initial Catalog |
Database |
InitialCatalog |
Vide | La base de données à utiliser après la connexion. Quand elle est vide, le serveur utilise la base de données par défaut de la connexion. |
AttachDbFilename |
Extended Properties, Initial File Name |
AttachDBFilename |
Vide | Le chemin complet d’un fichier de base de données primaire à attacher, pour SQL Server Express et LocalDB. |
User Instance |
None | UserInstance |
false |
Redirige la connexion vers une instance utilisateur SQL Server Express. Pour plus d’informations, voir SQL Server Express instances utilisateur. |
Failover Partner |
FailoverPartner |
FailoverPartner |
Vide | Le partenaire de miroir de la base de données peut essayer lorsque le serveur principal n’est pas disponible. La mise en miroir de bases de données est déconseillée. Utilisez les groupes de disponibilité pour les nouveaux déploiements. |
Current Language |
Language |
CurrentLanguage |
Vide | Le nom du langage SQL Server pour la session, comme us_english. Contrôle les formats de dates et le langage des messages système. |
Options d’identité d’application
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Application Name |
App |
ApplicationName |
Core Microsoft SqlClient Data Provider |
Le nom que le serveur rapporte via APP_NAME() et dans les vues de session. Utilisez un nom stable pour chaque charge de travail déployée. Des valeurs distinctes créent des pools de connexions distincts. |
Workstation ID |
WorkstationID, WSID |
WorkstationID |
Nom de l’ordinateur local | Le nom de l’ordinateur client que le serveur signale via HOST_NAME(). |
Application Intent |
ApplicationIntent |
ApplicationIntent |
ReadWrite |
ReadOnly demande le routage à intention de lecture lorsque la cible le supporte. Il ne rend pas les déclarations en lecture seule. Pour plus d’informations, voir Haute disponibilité et reprise après sinistre. |
Pour indiquer quel framework ou outil a ouvert une connexion, utilisez la RegisteredApplication propriété. Il n’a pas de mot-clé de chaîne de connexion. Pour plus d’informations, voir Signaler l’identité de l’application.
Options d'authentification
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Authentication |
None | Authentication |
Non spécifié(e) | Méthode d’authentification. Pour les valeurs acceptées, voir le tableau suivant. |
Integrated Security |
Trusted_Connection |
IntegratedSecurity |
false |
true, yes, ou sspi utilise l’identité du processus courant. |
User ID |
UID, User |
UserID |
Vide | Le nom de connexion SQL, ou l’identifiant utilisateur ou client Microsoft Entra ID, selon Authentication. |
Password |
PWD |
Password |
Vide | Le mot de passe ou le secret client pour les méthodes qui l’acceptent. |
Persist Security Info |
PersistSecurityInfo |
PersistSecurityInfo |
false |
Lorsque false, le pilote supprime le mot de SqlConnection.ConnectionString passe après l’ouverture de la connexion. Laisse tomber false. |
Server SPN |
ServerSPN |
ServerSPN |
Dérivé du nom du serveur | Supprime le nom principal de service (SPN) utilisé pour l’authentification intégrée du serveur principal. |
Failover Partner SPN |
FailoverPartnerSPN |
FailoverPartnerSPN |
Dérivé du nom associé | Outrepasse le SPN utilisé pour l’authentification intégrée au partenaire de basculement. |
Authentication accepte ces valeurs. Le constructeur les écrit sans espaces, comme ActiveDirectoryDefault, et l’analyseur accepte les deux formes.
| Value | Identity |
|---|---|
Sql Password |
Une connexion SQL avec User ID et Password. |
Active Directory Default |
Une chaîne de sources d’identifiants, telles que les variables d’environnement, l’identité gérée et la connexion aux outils de développement. |
Active Directory Managed Identity |
Une identité gérée. Définissez User ID à l’ID client d’une identité attribuée par l’utilisateur.
Active Directory MSI est un alias. |
Active Directory Workload Identity |
Une identité de charge de travail Kubernetes. |
Active Directory Service Principal |
Une application avec User ID défini sur l’ID client et Password défini sur le secret client. |
Active Directory Interactive |
Un utilisateur qui se connecte via une invite de navigateur. |
Active Directory Device Code Flow |
Un utilisateur qui se connecte sur un autre appareil avec un code. |
Active Directory Integrated |
L’utilisateur Windows connecté, via une configuration fédérée ou de connexion unique sans interruption. |
Active Directory Password |
Nom d’utilisateur et mot de passe. Cette méthode est obsolète. Utilise une autre méthode. |
Les méthodes Microsoft Entra ID nécessitent ce Microsoft.Data.SqlClient.Extensions.Azure package. Pour la configuration et des exemples, voir l’authentification Microsoft Entra ID et l’authentification SQL Server.
Options de chiffrement
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Encrypt |
None | Encrypt |
Mandatory |
Strict utilise TDS 8.0 et valide toujours le certificat serveur.
Mandatory, true, ou yes chiffre la connexion.
Optional, false, ou no chiffre toute la connexion uniquement lorsque le serveur l’exige. Lorsque le serveur supporte le chiffrement mais ne l’exige pas, seul le paquet de connexion est chiffré. |
Trust Server Certificate |
TrustServerCertificate |
TrustServerCertificate |
false |
true Ignore la validation des certificats serveur. Ignoré si Encrypt=Strict. Ne l’utilisez pas en production. |
Host Name In Certificate |
HostNameInCertificate |
HostNameInCertificate |
Vide | Un nom de secours pour la validation des certificats. SqlClient valide d’abord le certificat par rapport au nom du serveur dans Data Source. Il ne vérifie Host Name In Certificate que lorsque ce nom ne correspond pas, donc une mauvaise valeur ne provoque pas d’échec lorsque le nom du serveur correspond déjà. Il n’épingle pas de certificat. Pour exiger un certificat spécifique, utilisez Server Certificate. Cela ne change pas la destination réseau ni ne contourne les contrôles de chaîne de confiance et d’expiration. Laissez-le non configuré lorsque le nom du serveur correspond déjà au certificat. |
Server Certificate |
ServerCertificate |
ServerCertificate |
Vide | Le chemin d’un fichier PEM, DER ou CER qui doit correspondre exactement au certificat serveur. Le conducteur ne vérifie la correspondance que lorsqu’il valide le certificat, donc utilisez-le avec Encrypt=Mandatory ou Encrypt=Strict et Trust Server Certificate=false. Un fichier correspondant remplace la validation de la chaîne et celle du nom d’hôte, donc il fonctionne avec un certificat auto-signé auquel le client ne fait pas confiance. |
Pour les règles complètes de validation, voir Chiffrement et validation des certificats.
Options toujours chiffrées
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Column Encryption Setting |
ColumnEncryption |
ColumnEncryptionSetting |
Disabled |
Enabled active Toujours chiffré pour la connexion. |
Attestation Protocol |
None | AttestationProtocol |
Non spécifié(e) | Le protocole d’attestation de l’enclave : AAS, HGS, ou None. |
Enclave Attestation Url |
None | EnclaveAttestationUrl |
Vide | Le point de terminaison du service d’attestation pour Always Encrypted avec des enclaves sécurisées. |
Options réseau
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Multi Subnet Failover |
MultiSubnetFailover |
MultiSubnetFailover |
false |
Essaie toutes les adresses IP vers lesquelles le nom du serveur se résout en parallèle. Utilisez-le pour les écouteurs de groupes de disponibilité et les instances de cluster de basculement accessibles via TCP. Non supporté par le miroir de base de données. Les instances nommées dépendent de l’implémentation réseau. L’implémentation gérée, que .NET utilise sur Linux et macOS et sur Windows lorsque le réseau géré est activé, prend en charge une instance nommée et envoie la requête du navigateur SQL Server à chaque adresse résolue en parallèle. L’implémentation native sur Windows peut rejeter une instance nommée avec l’erreur SNI 48. |
IP Address Preference |
IPAddressPreference |
IPAddressPreference |
IPv4First |
L’ordre pour essayer les solutions aborde : IPv4First, IPv6First, ou UsePlatformDefault. |
Packet Size |
PacketSize |
PacketSize |
8000 |
La taille du paquet du flux de données tabulaire (TDS) en octets, de 512 à 32 768. |
Un commutateur AppContext à l’échelle du processus peut changer le Multi Subnet Failover code par défaut en true. Pour plus d’informations, voir AppContext switches dans SqlClient.
Options de temps mort
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Connect Timeout |
Connection Timeout, ConnectTimeout, Timeout |
ConnectTimeout |
15 |
Quelques secondes pour attendre une connexion, y compris l’attente d’une connexion poolée lorsque la piscine est pleine.
0 attend indéfiniment. |
Command Timeout |
None | CommandTimeout |
30 |
Le défaut CommandTimeout en quelques secondes pour les commandes créées sur la connexion.
0 attend indéfiniment. |
Connect Timeout ne limite pas l’exécution des requêtes.
Command Timeout Cela ne limite pas la connexion ni l’attente pour une connexion regroupée. Passez A CancellationToken à des appels asynchrones afin que l’appelant puisse arrêter d’attendre avant que l’un ou l’autre délai d’attente ne s’épuise.
Options de récupération de connexion
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Connect Retry Count |
ConnectRetryCount |
ConnectRetryCount |
1 |
Tentative à nouveau après une défaillance transitoire qualifiée lors de la première ouverture et lors du rétablissement d’une connexion au ralenti cassée.
0 désactive les réessais. Les valeurs valides sont comprises entre 0 et 255. |
Connect Retry Interval |
ConnectRetryInterval |
ConnectRetryInterval |
10 |
Quelques secondes entre les tentatives de réessayage. Les valeurs valides sont de 1 à 60. |
Lorsque Connect Retry Count est 1, qui est le code par défaut, le pilote utilise 2 pour les terminaux Azure SQL et 5 pour les points de terminaison serverless SQL Azure Synapse Analytics lorsqu’il restaure une connexion inactive défaillante. La première ouverture utilise la valeur comme définie, donc la valeur par défaut permet une seule tentative sur chaque terminaison. Le pilote utilise toute autre valeur telle que définie dans les deux cas.
Ces mots-clés ne réessaient pas une commande qui échoue pendant qu’elle est en cours d’exécution. Pour éviter la réessaie intégrée pour une ouverture, appelez une Open surcharge avec OpenWithoutRetry. Pour les politiques personnalisées, voir Logique de tentative configurable. Ne retentez une commande que lorsque la répéter est sûr.
Options de regroupement
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Pooling |
None | Pooling |
true |
Réutilise les connexions physiques pour faire correspondre les chaînes de connexion. |
Min Pool Size |
None | MinPoolSize |
0 |
Des connexions physiques que la piscine garde ouvertes après sa création. |
Max Pool Size |
None | MaxPoolSize |
100 |
Le plus grand nombre de connexions physiques dans un même bassin. Doit être au moins égal à 1. |
Connection Idle Timeout |
None | IdleTimeout |
300 |
Quelques secondes où une connexion peut rester inactive dans la piscine avant que celle-ci ne la ferme.
0 désactive l’expiration au ralenti. Appliqué uniquement lorsque l’interrupteur Switch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior AppContext est false. Par défaut, il s’agit de true. |
Load Balance Timeout |
Connection Lifetime |
LoadBalanceTimeout |
0 |
L’âge maximal en secondes d’une connexion est revenu dans la piscine. Une connexion plus ancienne est fermée.
0 désactive la limite. |
Pool Blocking Period |
PoolBlockingPeriod |
PoolBlockingPeriod |
Auto |
Que le pool regénère une défaillance de connexion mise en cache pendant une courte période : Auto, AlwaysBlock, ou NeverBlock.
Autodésactive le blocage pour les points de terminaison Azure SQL. |
Chaque chaîne de connexion distincte a son propre pool. Pour les clés du pool, le nettoyage et le temps d’inactivité, voir pooling de connexion SQL Server.
Options de transaction et de session
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Enlist |
None | Enlist |
true |
Insère la connexion dans la transaction ambiante System.Transactions lors de son ouverture. |
Transaction Binding |
None | TransactionBinding |
Implicit Unbind |
Implicit Unbind Détache la connexion à la fin de la transaction des enrôlés.
Explicit Unbind Le garde attaché jusqu’à ce que la connexion se ferme ou que le code le détache. |
Multiple Active Result Sets |
MultipleActiveResultSets |
MultipleActiveResultSets |
false |
Permet plus d’un lot actif sur une même connexion. |
Type System Version |
None | TypeSystemVersion |
Latest |
Le système de type serveur que le pilote expose. Accepte Latest, SQL Server 2012, SQL Server 2008, et SQL Server 2005. Laisse-le à Latest. |
Replication |
None | Replication |
false |
Identifie la connexion comme une connexion de réplication. |
Options uniquement du framework .NET
Ces mots-clés sont acceptés uniquement sur le cadre .NET. Sur .NET, le constructeur lance NotSupportedException et SqlConnection lance ArgumentException.
| Mot clé | Aliases | Propriété du promoteur | Par défaut | Description |
|---|---|---|---|---|
Network Library |
Net, Network |
NetworkLibrary |
Vide | La bibliothèque réseau. Ne le combinez pas avec un préfixe ou tcp:np: dans Data Source, car la connexion tombe en panne. Sur .NET, préfixe Data Source avec tcp: ou np: à la place. |
Connection Reset |
None | ConnectionReset |
true |
Obsolete. |
Transparent Network IP Resolution |
TransparentNetworkIPResolution |
TransparentNetworkIPResolution |
true |
Obsolete. |
Mots-clés non pris en charge
| Mot clé | Result |
|---|---|
Context Connection |
Context Connection=true lève InvalidOperationException. Microsoft. Data.SqlClient ne prend pas en compte les connexions contextuelles SQL CLR. |
Asynchronous Processing |
Lève ArgumentException: Keyword not supported. Les méthodes asynchrones fonctionnent sans cela. |
Driver, Provider |
Lève ArgumentException: Keyword not supported. Ces mots-clés appartiennent à ODBC et OLE DB. |
Règles de validation
SqlConnectionStringBuilder Rejette des mots-clés inconnus et de nombreuses valeurs invalides lorsque vous les définissez.
SqlConnectioneffectue plus de vérifications lorsque vous définissez sa chaîne de connexion, incluant des valeurs uniques acceptées par le constructeur et des combinaisons de mots-clés. Une chaîne acceptée par le constructeur peut toujours tomber en panne lorsque vous créez la connexion.
Le constructeur et la connexion rejettent ces valeurs avec ArgumentException:
-
Connect Timeout,Command Timeout,Load Balance Timeout,Connection Idle Timeout, ouMin Pool Sizemoins que 0. -
Max Pool Sizemoins d’un. -
Packet Sizeà l’extérieur de 512 à 32 768. -
Connect Retry CountÀ l’extérieur de 0 à 255. -
Connect Retry IntervalEn dehors de 1 à 60. - Un mot-clé qui ne figure pas dans cet article.
SqlConnection rejette également ces valeurs avec ArgumentException, même si le constructeur les accepte :
-
Type System VersionAutres queLatest,SQL Server 2012,SQL Server 2008, ouSQL Server 2005. -
Transaction Bindingà partImplicit UnbindouExplicit Unbind. - Une valeur plus longue que la limite TDS pour
Application Name,Current Language,Data Source,Failover Partner,Initial CatalogPassword,User ID, ,Workstation ID, , ouAttachDBFilename.
SqlConnection rejette également ces combinaisons avec ArgumentException:
-
Min Pool Sizesupérieur àMax Pool Size. -
Failover PartnersansInitial Catalog. -
Failover PartneravecMulti Subnet Failover=true,User Instance=trueouApplication Intent=ReadOnly. -
AuthenticationavecIntegrated Security=true. -
PasswordavecActive Directory Integrated,Active Directory Interactive,Active Directory Managed Identity,Active Directory MSI,Active Directory Default, ouActive Directory Workload Identity. -
User IDouPasswordavecActive Directory Device Code Flow.
Modifications des options de révision
Avant de changer une option en production :
- Enregistrez la chaîne de connexion actuelle, la version du pilote, le type de terminaison et le problème que vous résoudrez.
- Changez une option à la fois.
- Test de l’établissement de la connexion, de l’authentification, de la validation des certificats, du pool de connexions, du basculement, de l’annulation et de l’exécution des requêtes.
- Mesurez la latence de connexion, les attentes du pool et les numéros d’erreur.
- Confirmez le réglage sur chaque instance déployée.
Une chaîne de connexion modifiée crée un nouveau pool. Lors d’un déploiement par étapes, les anciens et nouveaux pools existent simultanément, ce qui permet d’augmenter le nombre total de connexions physiques au serveur.