Delen via


Syntaxis van verbindingsreeks

Van toepassing op: .NET Framework .NET Standard

ADO.NET downloaden

Het Microsoft.Data.SqlClient heeft een Connection object dat wordt overgenomen van DbConnection en een providerspecifieke ConnectionString eigenschap. De specifieke syntaxis van de verbindingsreeks voor de SqlClient-provider wordt in de eigenschap ConnectionString beschreven. Zie voor meer informatie over verbindingsreeks syntaxisConnectionString.

Opbouwfuncties voor verbindingsreeksen

Microsoft SqlClient Data Provider voor SQL Server heeft de volgende opbouwfunctie voor verbindingsreeksen geïntroduceerd.

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

Windows authentication

U wordt aangeraden Windows-verificatie (ook wel geïntegreerde beveiliging genoemd) te gebruiken om verbinding te maken met gegevensbronnen die dit ondersteunen. In de volgende tabel ziet u de syntaxis van Windows-verificatie die wordt gebruikt met de Microsoft SqlClient-gegevensprovider voor SQL Server.

Provider Syntaxis
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;

SqlClient-verbindingsreeks s

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 trefwoorden van de verbindingsreeks worden ook toegewezen aan eigenschappen in de SqlConnectionStringBuilder.

Belangrijk

De standaardinstelling voor het Persist Security Info trefwoord is false. Als u deze true instelt of yes toestaat dat beveiligingsgevoelige gegevens, inclusief de gebruikers-id en het wachtwoord, worden verkregen via de verbinding nadat de verbinding is geopend. Persist Security Info Zorg false ervoor dat een niet-vertrouwde bron geen toegang heeft tot gevoelige verbindingsreeks informatie.

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 een lokale server.

"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;"  

SQL Server-verificatie met SqlClient

Windows-verificatie heeft de voorkeur voor het maken van verbinding met SQL Server. Als SQL Server-verificatie echter vereist is, gebruikt u de volgende syntaxis om een gebruikersnaam en wachtwoord op te geven.

"Persist Security Info=False;User ID=<user name>;Password=<password>;Initial Catalog=AdventureWorks;Server=MySqlServer;Encrypt=True;"  

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

Opmerking

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

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=MySqlServer\MSSQL1;"  

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

Systeemversiewijzigingen typen

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 wordt uitgevoerd op een lokaal Windows-account met minimale bevoegdheden toe om een SQL Server-database te koppelen en uit te voeren zonder beheerdersbevoegdheden. Een gebruikersexemplaren worden uitgevoerd met de Windows-referenties van de gebruiker, niet als een service.

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

TrustServerCertificate gebruiken

Het TrustServerCertificate trefwoord wordt gebruikt bij het maken van verbinding met een SQL Server-exemplaar. Wanneer TrustServerCertificate is ingesteld op true, gebruikt de transportlaag TLS/SSL om het kanaal te versleutelen en de certificaatketen te omzeilen, zodat de vertrouwensrelatie niet gevalideerd hoeft te worden.

  • In versies vóór Microsoft.Data.SqlClient 2.0 wordt deze instelling genegeerd wanneer Encrypt is ingesteld op False en het servercertificaat niet gevalideerd wordt.
  • Vanaf versie 2.0 van Microsoft.Data.SqlClient wordt, zelfs als Encrypt is ingesteld op False, bepaald of certificaatvalidatie wordt uitgevoerd wanneer de server versleuteling afdwingt.
  • Vanaf versie 5.0 van Microsoft.Data.SqlClient wordt deze instelling genegeerd wanneer Encrypt deze is ingesteld op Strict. Het servercertificaat wordt altijd gevalideerd in Strict de modus.

Zie Versleuteling en certificaatvalidatie voor meer informatie.

"TrustServerCertificate=true;"

HostnaamInCertificaat

Vanaf versie 5.0 van Microsoft.Data.SqlClient is HostNameInCertificate een nieuwe verbindingsoptie. Validatie van servercertificaat zorgt ervoor dat de algemene naam (CN) of alternatieve onderwerpnaam (SAN) in het certificaat overeenkomt met de servernaam waarmee verbinding wordt gemaakt. In sommige gevallen komt de servernaam, zoals DNS-aliassen, mogelijk niet overeen met de CN of SAN. De waarde HostNameInCertificate kan worden gebruikt om een andere, verwachte CN of SAN op te geven in het servercertificaat.

"HostNameInCertificate=myserver.example.com"

ServerCertificate

Vanaf versie 5.1 van Microsoft.Data.SqlClient ServerCertificate is een nieuwe verbindingsoptie. De standaardwaarde van de ServerCertificate-verbindingsinstelling is een lege tekenreeks. Wanneer Encrypt dit is ingesteld op Mandatory of Strict, ServerCertificate kan worden gebruikt om een pad op te geven in het bestandssysteem naar een certificaatbestand dat overeenkomt met het TLS-certificaat van de server. Om het certificaat geldig te kunnen maken, moet het opgegeven certificaat exact overeenkomen. De geaccepteerde certificaatindelingen zijn PEM, DER en CER. Hier is een voorbeeld:

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

Versleuteling inschakelen

Als u versleuteling wilt inschakelen wanneer een certificaat niet is ingericht op de server, moet de eigenschap Vertrouwensservercertificaatverbinding worden ingesteld op True. In dit geval maakt versleuteling gebruik van een zelfondertekend servercertificaat zonder validatie, omdat er geen verifieerbaar certificaat is ingericht op de server.

Toepassingsinstellingen kunnen het beveiligingsniveau dat is geconfigureerd in SQL Server niet verminderen, maar kunnen dit desgewenst versterken. Een toepassing kan versleuteling aanvragen door de TrustServerCertificate en Encrypt trefwoorden in te truestellen, zodat versleuteling plaatsvindt, zelfs wanneer een servercertificaat niet is ingericht. TrustServerCertificate Als dit echter niet is ingeschakeld in de clientconfiguratie, is er nog steeds een ingericht servercertificaat vereist.

In de volgende tabel worden alle gevallen beschreven.

Verbindingsreeks/kenmerk versleutelen Vertrouwensservercertificaat verbindingsreeks/kenmerk Resultaat
Nee/Optioneel Ignored Er treedt geen versleuteling op.
Ja/verplicht Nee. Versleuteling vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging.
Ja/verplicht Yes Versleuteling vindt altijd plaats, maar kan een zelfondertekend servercertificaat gebruiken.
Strikt1 Ignored Versleuteling vindt altijd plaats en moet een verifieerbaar servercertificaat gebruiken, anders mislukt de verbindingspoging.

1 Strikte versleuteling is alleen beschikbaar vanaf Microsoft.Data.SqlClient versie 5.0.

Zie Versleuteling en certificaatvalidatie voor meer informatie, waaronder gedrag in eerdere versies.

Zie ook

Verbindingsreeksen
Versleuteling en certificaatvalidatie
Verbinding maken met een gegevensbron
Microsoft ADO.NET voor SQL Server