Syntaxis van verbindingsreeks

Elke ADO.NET-gegevensprovider heeft een Connection object dat overerft van DbConnection en een providerspecifieke ConnectionString eigenschap. De specifieke verbindingsreeks syntaxis voor elke provider wordt beschreven in de ConnectionString eigenschap. De volgende tabel bevat Microsoft. Data.SqlClient en drie providers die zijn opgenomen in .NET Framework.

Gegevensprovider Beschrijving
Microsoft.Data.SqlClient Biedt gegevenstoegang voor Microsoft SQL Server via het Microsoft.Data.SqlClient NuGet-pakket. Voor meer informatie over de syntaxis van verbindingsreeksen, zie ConnectionString.
System.Data.OleDb Biedt gegevenstoegang voor gegevensbronnen die beschikbaar zijn via OLE DB. Voor meer informatie over de syntaxis van verbindingsreeksen, zie ConnectionString.
System.Data.Odbc Biedt gegevenstoegang voor gegevensbronnen die beschikbaar zijn via ODBC. Voor meer informatie over de syntaxis van verbindingsreeksen, zie ConnectionString.
System.Data.OracleClient Biedt gegevenstoegang voor Oracle versie 8.1.7 of hoger. Voor meer informatie over de syntaxis van verbindingsreeksen, zie ConnectionString.

verbindingsreeks-bouwers

Gebruik de verbindingsreeks builder voor uw gegevensprovider.

Met de opbouwfuncties voor verbindingsreeksen kunt u syntactisch geldige verbindingsreeksen maken tijdens runtime. U hoeft dus geen verbindingsreekswaarden handmatig samen te voegen in uw code. Zie Verbindingsreeksbouwers voor meer informatie.

Windows-verificatie

Windows-verificatie (ook wel geïntegreerde beveiliging genoemd) kan worden gebruikt om verbinding te maken met gegevensbronnen die dit ondersteunen. De syntaxis die in de verbindingsreeks wordt gebruikt, verschilt per provider. In de volgende tabel ziet u de Windows verificatiesyntaxis die bij deze gegevensproviders wordt gebruikt.

Aanbieder Syntaxis
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;
OleDb Integrated Security=SSPI;
Odbc Trusted_Connection=yes;
OracleClient Integrated Security=yes;

Notitie

Integrated Security=true genereert een uitzondering wanneer deze wordt gebruikt bij de OleDb provider.

Belangrijk

Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. Als u verbinding maakt met Azure SQL, is Managed Identities voor Azure-resources de aanbevolen verificatiemethode.

SqlClient-verbindingsreeksen

De syntaxis voor een SqlConnection verbindingsreeks wordt beschreven in de SqlConnection.ConnectionString eigenschap. U kunt de ConnectionString eigenschap gebruiken om een verbindingsreeks voor een SQL Server-database op te halen of in te stellen. De meeste verbindingsreeks trefwoorden worden ook toegewezen aan eigenschappen in de SqlConnectionStringBuilder.

Belangrijk

De standaardinstelling voor het Persist Security Info trefwoord is false. Het instellen van true of yes stelt in staat dat beveiligingsgevoelige informatie, inclusief de gebruikers-ID en het wachtwoord, na het openen van de verbinding uit de verbinding kan worden verkregen. Houd Persist Security Info op false ingesteld om ervoor te zorgen dat een niet-vertrouwde bron geen toegang heeft tot gevoelige verbindingsreeksinformatie.

Windows-verificatie met SqlClient

Elk van de volgende vormen van syntaxis maakt gebruik van Windows-verificatie om verbinding te maken met de AdventureWorks database op de opgegeven server.

"Persist Security Info=False;Integrated Security=true;Initial Catalog=AdventureWorks;Server=<server>;Encrypt=true"
"Persist Security Info=False;Integrated Security=SSPI;database=AdventureWorks;server=<server>;Encrypt=true"
"Persist Security Info=False;Trusted_Connection=True;database=AdventureWorks;server=<server>;Encrypt=true"

Belangrijk

Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. Als u verbinding maakt met Azure SQL, is Managed Identities voor Azure-resources de aanbevolen verificatiemethode.

SQL Server-verificatie met SqlClient

Windows-verificatie heeft de voorkeur voor het maken van verbinding met SQL Server (on-premises). Als SQL Server-verificatie echter vereist is, gebruikt u de volgende syntaxis om een gebruikersnaam en wachtwoord op te geven. In dit voorbeeld worden sterretjes gebruikt om een geldige gebruikersnaam en een geldig wachtwoord weer te geven.

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

Wanneer u verbinding maakt met Azure SQL Database of met Azure SQL Data Warehouse en een aanmelding in de indeling user@servernameopgeeft, moet u ervoor zorgen dat de servername waarde in de aanmelding overeenkomt met de opgegeven Server=waarde.

Notitie

Windows-verificatie heeft voorrang op SQL Server-aanmeldingen. Als u zowel Integrated Security=true een gebruikersnaam als een wachtwoord opgeeft, worden de gebruikersnaam en het wachtwoord genegeerd en wordt Windows-verificatie gebruikt.

Belangrijk

Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. Als u verbinding maakt met Azure SQL, is Managed Identities voor Azure-resources de aanbevolen verificatiemethode.

Verbinding maken met een benoemd exemplaar van SQL Server

Als u verbinding wilt maken met een benoemd exemplaar van SQL Server, gebruikt u de syntaxis van de servernaam\instantienaam .

"Data Source=<server>\\<instance>;Encrypt=true;"

U kunt ook de DataSource eigenschap van de SqlConnectionStringBuilder instellen op de naam van de instantie wanneer u een verbindingsreeks bouwt. De DataSource eigenschap van een SqlConnection object heeft het kenmerk Alleen-lezen.

Typesysteemversiewijzigingen

Het Type System Version trefwoord in een SqlConnection.ConnectionString geeft de weergave aan de clientzijde van SQL Server-typen op. Zie voor meer informatie over het Type System Version trefwoord SqlConnection.ConnectionString.

Verbinding maken en koppelen aan SQL Server Express-gebruikersexemplaren

Gebruikersexemplaren zijn een functie in SQL Server Express. Ze stellen een gebruiker die werkt op een lokaal Windows-account met minimale bevoegdheden toe om een SQL Server-database te koppelen en uit te voeren zonder dat er administratorrechten nodig zijn. Een gebruikersinstantie wordt uitgevoerd met de Windows-referenties van de gebruiker, niet als een dienst.

Zie SQL Server Express User Instances voor meer informatie over het werken met gebruikersexemplaren.

TrustServerCertificate gebruiken

Met TrustServerCertificate=true versleutelt Encrypt=true de verbinding, maar wordt de validatie van het servercertificaat overgeslagen. Bewaar TrustServerCertificate=false voor productieverbindingen en configureer een verifieerbaar servercertificaat.

"TrustServerCertificate=true;"

Caution

Als u certificaatvalidatie overslaat, kan de client de identiteit van de server niet verifiëren. Met Encrypt=Strict, Microsoft.Data.SqlClient valideert altijd het servercertificaat en negeert TrustServerCertificate

Versleuteling inschakelen

Microsoft.Data.SqlClient is standaard ingesteld op Encrypt=Mandatory, gelijk aan Encrypt=true en TrustServerCertificate=false. De client vereist versleuteling en valideert het servercertificaat. Als het certificaat niet wordt vertrouwd of niet overeenkomt met de servernaam, mislukt de verbinding.

Geef voor externe verbindingen Encrypt=true op en configureer een servercertificaat dat door de client wordt vertrouwd. Als u migreert van System.Data.SqlClient, ga er dan niet van uit dat de standaardinstellingen voor versleuteling van toepassing zijn op Microsoft.Data.SqlClient. Zie Versleuteling en certificaatvalidatie in Microsoft.Data.SqlClientvoor meer informatie.

OleDb-verbindingsreeksen

Met de ConnectionString eigenschap van een OleDbConnection bestand kunt u een verbindingsreeks ophalen of instellen voor een OLE DB-gegevensbron, zoals Microsoft Access. U kunt ook tijdens runtime een OleDb verbindingsreeks maken met behulp van de OleDbConnectionStringBuilder klasse.

OleDb verbindingsreeks syntaxis

U moet een providernaam opgeven voor een OleDbConnection verbindingsreeks. De volgende verbindingsreeks maakt verbinding met een Microsoft Access-database met behulp van de Jet-provider. Houd er rekening mee dat de User ID en Password trefwoorden optioneel zijn als de database niet beveiligd is (de standaardinstelling).

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

Als de Jet-database is beveiligd met behulp van beveiliging op gebruikersniveau, moet u de locatie van het werkgroepinformatiebestand (.mdw) opgeven. Het werkgroepinformatiebestand wordt gebruikt om de referenties te valideren die worden weergegeven in de verbindingsreeks.

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

Belangrijk

Het is mogelijk om verbindingsgegevens op te geven voor een OleDbConnection in een UDL-bestand (Universal Data Link). U moet dit echter vermijden. UDL-bestanden worden niet versleuteld en bevatten verbindingsreeks informatie in duidelijke tekst. Omdat een UDL-bestand een externe bestandsresource voor uw toepassing is, kan het niet worden beveiligd met .NET Framework. UDL-bestanden worden niet ondersteund voor SqlClient.

Belangrijk

Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. Als u verbinding maakt met Azure SQL, is Managed Identities voor Azure-resources de aanbevolen verificatiemethode.

DataDirectory gebruiken om verbinding te maken met Access/Jet

DataDirectory is niet exclusief voor SqlClient. Het kan ook worden gebruikt met de System.Data.OleDb en System.Data.Odbc .NET-gegevensproviders. In de volgende voorbeeldtekenreeks OleDbConnection ziet u de syntaxis die nodig is om verbinding te maken met de Northwind.mdb in de app_data map van de toepassing. De systeemdatabase (System.mdw) wordt ook opgeslagen op die locatie.

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

Belangrijk

Het opgeven van de locatie van de systeemdatabase in de verbindingsreeks is niet vereist als de Access/Jet-database niet beveiligd is. Beveiliging is standaard uitgeschakeld, waarbij alle gebruikers verbinding maken als de ingebouwde beheerder met een leeg wachtwoord. Zelfs wanneer beveiliging op gebruikersniveau correct is geïmplementeerd, blijft een Jet-database kwetsbaar voor aanvallen. Daarom wordt het opslaan van gevoelige informatie in een Access/Jet-database niet aanbevolen vanwege de inherente zwakte van het beveiligingsschema op basis van bestanden.

Verbinding maken met Excel

De Microsoft Jet-provider wordt gebruikt om verbinding te maken met een Excel-werkmap. In de volgende verbindingsreeks stelt het Extended Properties trefwoord eigenschappen in die specifiek zijn voor Excel. "HDR=Ja;" geeft aan dat de eerste rij kolomnamen bevat, geen gegevens en "IMEX=1;", geeft aan dat het stuurprogramma altijd 'gemixte' gegevenskolommen als tekst moet lezen.

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

Houd er rekening mee dat het dubbele aanhalingsteken dat nodig is voor de Extended Properties ook tussen dubbele aanhalingstekens moet staan.

Data Shape-provider verbindingsreeks syntaxis

Gebruik zowel de Provider als de Data Provider trefwoorden bij het gebruik van de Microsoft Data Shape-provider. In het volgende voorbeeld wordt de Shape-provider gebruikt om verbinding te maken met een lokaal exemplaar van SQL Server.

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

Belangrijk

Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. Als u verbinding maakt met Azure SQL, is Managed Identities voor Azure-resources de aanbevolen verificatiemethode.

Odbc-verbindingsreeksen

Met de ConnectionString eigenschap van een OdbcConnection database kunt u een verbindingsreeks ophalen of instellen voor een OLE DB-gegevensbron. Odbc-verbindingsreeksen worden ook ondersteund door de OdbcConnectionStringBuilder.

In de volgende verbindingsreeks wordt het Microsoft Text Driver gebruikt.

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

Oracle-verbindingstekens

Met de ConnectionString eigenschap van een OracleConnection database kunt u een verbindingsreeks ophalen of instellen voor een OLE DB-gegevensbron. Oracle-verbindingsreeksen worden ook ondersteund door de OracleConnectionStringBuilder.

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

Zie voor meer informatie over ODBC verbindingsreeks syntaxisConnectionString.

Belangrijk

Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. Als u verbinding maakt met Azure SQL, is Managed Identities voor Azure-resources de aanbevolen verificatiemethode.

Zie ook