Syntaxis van verbindingsreeks
Elke .NET Framework-gegevensprovider heeft een Connection
object dat wordt overgenomen van DbConnection en een providerspecifieke ConnectionString eigenschap. De specifieke verbindingsreeks syntaxis voor elke provider wordt beschreven in de ConnectionString
eigenschap. De volgende tabel bevat de vier gegevensproviders die zijn opgenomen in .NET Framework.
.NET Framework-gegevensprovider | Beschrijving |
---|---|
System.Data.SqlClient | Biedt gegevenstoegang voor Microsoft SQL Server. Zie voor meer informatie over verbindingsreeks syntaxisConnectionString. |
System.Data.OleDb | Biedt gegevenstoegang voor gegevensbronnen die beschikbaar zijn via OLE DB. Zie voor meer informatie over verbindingsreeks syntaxisConnectionString. |
System.Data.Odbc | Biedt gegevenstoegang voor gegevensbronnen die beschikbaar zijn via ODBC. Zie voor meer informatie over verbindingsreeks syntaxisConnectionString. |
System.Data.OracleClient | Biedt gegevenstoegang voor Oracle versie 8.1.7 of hoger. Zie voor meer informatie over verbindingsreeks syntaxisConnectionString. |
Opbouwfuncties voor verbindingsreeksen
ADO.NET 2.0 heeft de volgende verbindingsreeks builders geïntroduceerd voor de .NET Framework-gegevensproviders.
- SqlConnectionStringBuilder
- OleDbConnectionStringBuilder
- OdbcConnectionStringBuilder
- OracleConnectionStringBuilder
Met de verbindingsreeks opbouwfuncties kunt u syntactisch geldige verbindingsreeks s maken tijdens runtime, zodat u verbindingsreeks waarden niet handmatig hoeft samen te voegen in uw code. Zie Opbouwfuncties voor verbindingsreeksen 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 syntaxis van Windows-verificatie die wordt gebruikt met de .NET Framework-gegevensproviders.
Provider | 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-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. Als u verbinding wilt maken met een eerdere versie van SQL Server, moet u de .NET Framework-gegevensprovider voor OleDb (System.Data.OleDb) gebruiken. De meeste verbindingsreeks trefwoorden 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. false
Zorg Persist Security Info
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"
"Persist Security Info=False;Integrated Security=SSPI;
database=AdventureWorks;server=(local)"
"Persist Security Info=False;Trusted_Connection=True;
database=AdventureWorks;server=(local)"
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@servername
opgeeft, 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=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 SqlConnection.ConnectionString voor meer informatie over het Type System Version
trefwoord.
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 is alleen geldig wanneer u verbinding maakt met een SQL Server-exemplaar met een geldig certificaat. Wanneer TrustServerCertificate
dit is ingesteld true
, gebruikt de transportlaag SSL om het kanaal te versleutelen en de certificaatketen te omzeilen om de vertrouwensrelatie te valideren.
"TrustServerCertificate=true;"
Notitie
Als TrustServerCertificate
dit is ingesteld true
op en versleuteling is ingeschakeld, wordt het versleutelingsniveau dat op de server is opgegeven, gebruikt, zelfs als Encrypt
dit is ingesteld false
op in de verbindingsreeks. De verbinding mislukt anders.
Versleuteling inschakelen
Als u versleuteling wilt inschakelen wanneer een certificaat niet is ingericht op de server, moeten de opties force protocolversleuteling en vertrouwensservercertificaat worden ingesteld in SQL Server Configuration Manager. In dit geval gebruikt versleuteling een zelfondertekend servercertificaat zonder validatie als 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
trefwoorden en Encrypt
trefwoorden in te true
stellen, zodat versleuteling plaatsvindt, zelfs wanneer een servercertificaat niet is ingericht en Force Protocol Encryption niet is geconfigureerd voor de client. Als TrustServerCertificate
dit echter niet is ingeschakeld in de clientconfiguratie, is er nog steeds een ingericht servercertificaat vereist.
In de volgende tabel worden alle gevallen beschreven.
Clientinstelling voor Protocolversleuteling afdwingen | Clientinstelling voor vertrouwensservercertificaat | Versleutelen/versleuteling gebruiken voor gegevens verbindingsreeks/kenmerk | Vertrouwensservercertificaat verbindingsreeks/kenmerk | Resultaat |
---|---|---|---|---|
Nee | N.v.t. | Nee (standaard) | Genegeerd | Er treedt geen versleuteling op. |
Nee | N.v.t. | Ja | Nee (standaard) | Versleuteling vindt alleen plaats als er een verifieerbaar servercertificaat is, anders mislukt de verbindingspoging. |
Nee | N.v.t. | Ja | Ja | Versleuteling vindt altijd plaats, maar kan een zelfondertekend servercertificaat gebruiken. |
Ja | Nr. | Genegeerd | Genegeerd | Versleuteling vindt alleen plaats als er een verifieerbaar servercertificaat is; anders mislukt de verbindingspoging. |
Ja | Ja | Nee (standaard) | Genegeerd | Versleuteling vindt altijd plaats, maar kan een zelfondertekend servercertificaat gebruiken. |
Ja | Ja | Ja | Nee (standaard) | Versleuteling vindt alleen plaats als er een verifieerbaar servercertificaat is; anders mislukt de verbindingspoging. |
Ja | Ja | Ja | Ja | Versleuteling vindt altijd plaats, maar kan een zelfondertekend servercertificaat gebruiken. |
Zie Versleuteling gebruiken zonder validatie voor meer informatie.
OleDb-verbindingsreeks s
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 een OleDb
verbindingsreeks tijdens runtime 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 voor de Extended Properties
aanhalingstekens vereist is, ook tussen dubbele aanhalingstekens moet worden geplaatst.
Gegevensshapeprovider 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-verbindingsreeks s
Met de ConnectionString eigenschap van een OdbcConnection database kunt u een verbindingsreeks ophalen of instellen voor een OLE DB-gegevensbron. Odbc-verbindingsreeks s 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-verbindingsreeks s
Met de ConnectionString eigenschap van een OracleConnection database kunt u een verbindingsreeks ophalen of instellen voor een OLE DB-gegevensbron. Oracle-verbindingsreeks s 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.