Partager via


Syntaxe de chaîne de connexion (ADO.NET)

Chaque fournisseur de données .NET Framework a un objet Connection qui hérite de DbConnection et d'une propriété ConnectionString spécifique au fournisseur.La syntaxe de chaîne de connexion spécifique à chaque fournisseur est documentée dans sa propriété ConnectionString.Le tableau suivant répertorie les quatre fournisseurs de données inclus dans le .NET Framework.

Fournisseur de données .NET Framework

Description

System.Data.SqlClient

Fournit un accès aux données pour Microsoft SQL Server version 7.0 ou ultérieure.Pour plus d'informations sur la syntaxe de chaîne de connexion, consultez ConnectionString.

System.Data.OleDb

Fournit un accès aux données pour les sources de données exposées à l'aide de OLE DB.Pour plus d'informations sur la syntaxe de chaîne de connexion, consultez ConnectionString.

System.Data.Odbc

Fournit un accès aux données pour les sources de données exposées à l'aide de ODBC.Pour plus d'informations sur la syntaxe de chaîne de connexion, consultez ConnectionString.

System.Data.OracleClient

Fournit un accès aux données pour Oracle version 8.1.7 ou ultérieure.Pour plus d'informations sur la syntaxe de chaîne de connexion, consultez ConnectionString.

Générateurs de chaînes de connexion

ADO.NET 2.0 a introduit les générateurs de chaînes de connexion suivants pour les fournisseurs de données .NET Framework.

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

Authentification Windows

Il est recommandé d'utiliser l'authentification Windows, appelée parfois la sécurité intégrée, pour se connecter aux sources de données qui la prennent en charge.La syntaxe employée dans la chaîne de connexion varie en fonction du fournisseur.Le tableau suivant présente la syntaxe de l'authentification Windows utilisée avec les fournisseurs de données .NET Framework.

Fournisseur

Syntaxe

SqlClient

Integrated Security=true;

-- or --

Integrated Security=SSPI;

OleDb

Integrated Security=SSPI;

Odbc

Trusted_Connection=yes;

OracleClient

Integrated Security=yes;

RemarqueRemarque

Integrated Security=true lève une exception lors de son utilisation avec le fournisseur OleDb.

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 version 7.0 ou ultérieure.Si vous devez vous connecter à une version antérieure de SQL Server, utilisez le fournisseur de données .NET Framework pour OleDb (System.Data.OleDb).La plupart des mots clés de chaîne connexion sont aussi mappés à des propriétés dans le SqlConnectionStringBuilder.

Chacune des formes de syntaxe suivantes 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"
"Persist Security Info=False;Integrated Security=SSPI;
    database=AdventureWorks;server=(local)"
"Persist Security Info=False;Trusted_Connection=True;
    database=AdventureWorks;server=(local)"

Connexions SQL Server

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"
Note de sécuritéNote de sécurité

La valeur par défaut du mot clé PersistSecurity 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 à PersistSecurity 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.

Pour vous connecter à une instance nommée de SQL Server, utilisez la syntaxe 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.

RemarqueRemarque

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.

Modifications de la version de système de type

Les fonctionnalités disponibles pour une application cliente dépendent de la version de SQL Server et du niveau de compatibilité de la base de données.Les mots clés Type System Version dans une propriété SqlConnection.ConnectionString permettent de spécifier la représentation côté client des types SQL Server.L'affectation explicite de la version de système de type pour laquelle l'application cliente a été écrite évite d'éventuels problèmes qui pourraient entraîner l'arrêt d'une application si une version différente de SQL Server est utilisée.Par exemple, les colonnes UDT sont représentées sous forme de tableau byte[] si vous spécifiez SQL Server 2000.Par contre, si vous spécifiez SQL Server 2005, elles sont représentées sous forme de types managés.

Les valeurs Type System Version disponibles sont décrites dans le tableau suivant.

Valeur

Description

Dernière

Utilise la version la plus récente que cette paire client-serveur peut gérer.La version utilisée avance automatiquement lorsque les composants client et serveur sont mis à niveau.Il s'agit du paramètre par défaut dans ADO.NET.

SQL Server 2000

Utilise le système de type SQL Server 2000.

SQL Server 2005

Utilise le système de type SQL Server 2005.

SQL Server 2008

Utilise le système de type SQL Server 2008.Les valeurs Datetime sont traitées en fonction de la version de système de type et de la langue par défaut spécifiés sur le serveur.

À des fins de compatibilité avec les fonctionnalités introduites dans SQL Server 2008, vous pouvez fournir Type System Version de manière explicite dans la chaîne de connexion en utilisant l'un des éléments suivants.

Type System Version= SQL Server 2008;
Type System Version=Latest;
RemarqueRemarque

La version de système de type ne peut pas être définie pour le code CLR (Common Language Runtime) exécuté en mode in-process dans SQL Server.Pour plus d'informations, consultez Intégration de Common Language Runtime dans SQL Server (ADO.NET).

Connexion et attachement aux instances utilisateur de SQL Server Express

Les instances utilisateur sont une nouvelle fonctionnalité disponible dans SQL Server 2005 Express Edition uniquement.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 Connexion aux instances utilisateur de SQL Server Express (ADO.NET).

Utilisation de TrustServerCertificate

Le mot clé TrustServerCertificate est nouveau dans ADO.NET 2.0 et valide uniquement pour se connecter à une instance SQL Server 2005 avec un certificat valide.Lorsque TrustServerCertificate a la valeur true, la couche de transport fait appel au protocole SSL pour chiffrer le canal et ignore la chaîne du certificat pour valider la confiance.

"TrustServerCertificate=true;" 
RemarqueRemarque

Si TrustServerCertificate a la valeur true et le chiffrement est activé, le niveau de chiffrement spécifié sur le serveur sera utilisé même si Encrypt a la valeur false dans la chaîne de connexion.Sinon, la connexion échouera.

Activation du chiffrement

Pour activer le chiffrement lorsqu'un certificat n'a pas été fourni sur le serveur, les options Forcer le chiffrement du protocole et Faire confiance au certificat de serveur doivent être définies dans le Gestionnaire de configuration de SQL Server.Dans ce cas, le chiffrement fait appel à un certificat de serveur auto-signé sans validation en l'absence de tout certificat vérifiable 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 en l'absence d'un certificat de serveur et si l'option Forcer le chiffrement du protocole n'a pas été configurée pour le client.Toutefois, si TrustServerCertificate n'est pas activé dans la configuration cliente, un certificat de serveur fourni est toujours nécessaire.

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

Paramètre client Forcer le chiffrement du protocole

Paramètre client Faire confiance au certificat de serveur

Attribut/chaîne de connexion Chiffrer/Utiliser le chiffrement pour les données

Attribut/chaîne de connexion Faire confiance au certificat de serveur

Résultat

Non

N/A

Non (valeur par défaut)

Ignoré

Aucun chiffrement ne se produit.

Non

N/A

Oui

Non (valeur par défaut)

Le chiffrement se produit uniquement en présence d'un certificat de serveur vérifiable, sinon la tentative de connexion échoue.

Non

n/a

Oui

Oui

Le chiffrement se produit uniquement en présence d'un certificat de serveur vérifiable, sinon la tentative de connexion échoue.

Oui

Non

Ignoré

Ignoré

Le chiffrement se produit uniquement en présence d'un certificat de serveur vérifiable, sinon la tentative de connexion échoue.

Oui

Oui

Non (valeur par défaut)

Ignoré

Le chiffrement se produit uniquement en présence d'un certificat de serveur vérifiable, sinon la tentative de connexion échoue.

Oui

Oui

Oui

Non (valeur par défaut)

Le chiffrement se produit uniquement en présence d'un certificat de serveur vérifiable, sinon la tentative de connexion échoue.

Oui

Oui

Oui

Oui

Le chiffrement se produit uniquement en présence d'un certificat de serveur vérifiable, sinon la tentative de connexion échoue.

Pour plus d'informations, consultez Using Encryption Without Validation (en anglais) dans la documentation en ligne de SQL Server 2005.

Chaînes de connexion OleDb

La propriété ConnectionString d'un OleDbConnection vous permet d'obtenir et de définir une chaîne de connexion pour une source de données OLE DB, telle que Microsoft Access ou SQL Server version 6.5 ou antérieure.Vous pouvez également créer une chaîne de connexion OleDb au moment de l'exécution à l'aide de la classe OleDbConnectionStringBuilder.

Syntaxe de chaîne de connexion OleDb

Vous devez spécifier un nom de fournisseur pour une chaîne de connexion OleDbConnection.La chaîne de connexion suivante se connecte à une base de données Microsoft Access à l'aide du fournisseur Jet.Notez que les mots clés UserID et Password sont facultatifs si la base de données n'est pas sécurisée (par défaut).

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=; 

Si la base de données Jet est sécurisée à l'aide d'une sécurité au niveau utilisateur, vous devez fournir l'emplacement du fichier d'informations de groupe de travail (.mdw).Le fichier d'informations de groupe de travail permet de valider les informations d'identification présentées dans la chaîne de connexion.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;

Utilisez sqloledb comme mot clé fournisseur pour SQL Server version 6.5 ou antérieure.

Provider=sqloledb;Data Source=MySqlServer;Initial Catalog=pubs;User Id=*****;Password=*****;
Note de sécuritéNote de sécurité

Vous pouvez fournir des informations de connexion pour un OleDbConnection dans un fichier UDL (Universal Data Link). C'est cependant déconseillé.Les fichiers UDL n'étant pas chiffrés, ils exposent les informations de chaîne de connexion en texte brut.Comme un fichier UDL est une ressource basée sur un fichier externe pour votre application, il n'est pas possible de le sécuriser à l'aide du .NET Framework.Les fichiers UDL ne sont pas pris en charge pour SqlClient.

Utilisation de DataDirectory pour se connecter à Access/Jet

DataDirectory n'est pas exclusif à SqlClient.Il peut être aussi utilisé avec les fournisseurs de données .NET System.Data.OleDb et System.Data.Odbc.L'exemple de chaîne OleDbConnection suivant illustre la syntaxe nécessaire pour se connecter au fichier Northwind.mdb situé dans le dossier app_data de l'application.La base de données système (System.mdw) est également stockée à cet emplacement.

"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\Northwind.mdb;
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"
Note de sécuritéNote de sécurité

Il n'est pas nécessaire de définir l'emplacement de la base de données système dans la chaîne de connexion si la base de données Access/Jet n'est pas sécurisée.La sécurité est désactivée par défaut et tous les utilisateurs se connectent avec le profil intégré d'utilisateur Admin et à l'aide d'un mot de passe vide.Même lorsque la sécurité au niveau utilisateur est correctement implémentée, une base de données Jet reste vulnérable aux attaques.Par conséquent, le stockage d'informations sensibles dans une base de données Access/Jet n'est pas recommandé en raison de la défaillance inhérente de son modèle de sécurité basé sur un fichier.

Connexion à Excel

Le fournisseur Microsoft Jet permet de se connecter à un classeur Excel.Dans la chaîne de connexion suivante, le mot clé Extended Properties définit des propriétés spécifiques à Excel. "« HDR=Yes; » indique que la première ligne contient des noms de colonne, pas des données, et « IMEX=1; » indique au pilote de toujours lire les colonnes de données « intermixed » comme du texte.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""

Notez que le caractère guillemet double requis pour Extended Properties doit également être entouré de guillemets doubles.

Syntaxe de chaîne de connexion au fournisseur Data Shape

Utilisez les mots clés Provider et Data Provider lorsque vous utilisez le fournisseur Microsoft Data Shape.L'exemple suivant utilise le fournisseur Shape pour se connecter à une instance locale de SQL Server.

"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;" 

Chaînes de connexion Odbc

La propriété ConnectionString d'un OdbcConnection vous permet d'obtenir ou de définir une chaîne de connexion pour une source de données OLE DB.Les chaînes de connexion ODBC sont également prises en charge par le OdbcConnectionStringBuilder.

La chaîne de connexion suivante utilise le pilote Microsoft Text.

Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin

Utilisation de DataDirectory pour se connecter à Visual FoxPro

L'exemple de chaîne de connexion OdbcConnection suivant illustre l'utilisation de DataDirectory pour se connecter à un fichier Microsoft Visual FoxPro.

"Driver={Microsoft Visual FoxPro Driver};
SourceDB=|DataDirectory|\MyData.DBC;SourceType=DBC;"

Chaînes de connexion Oracle

La propriété ConnectionString d'un OracleConnection vous permet d'obtenir ou de définir une chaîne de connexion pour une source de données OLE DB.Les chaînes de connexion Oracle sont également prises en charge par le OracleConnectionStringBuilder.

Data Source=Oracle9i;User ID=*****;Password=*****;

Pour plus d'informations sur la syntaxe de chaîne de connexion ODBC, consultez ConnectionString.

Voir aussi

Autres ressources

Chaînes de connexion (ADO.NET)

Connexion à une source de données (ADO.NET)