Syntax för anslutningssträng
Varje .NET Framework-dataprovider har ett Connection
objekt som ärver från DbConnection samt en providerspecifik ConnectionString egenskap. Den specifika anslutningssträng syntaxen för varje provider dokumenteras i dess ConnectionString
egenskap. I följande tabell visas de fyra dataprovidrar som ingår i .NET Framework.
.NET Framework-dataprovider | beskrivning |
---|---|
System.Data.SqlClient | Ger dataåtkomst för Microsoft SQL Server. Mer information om anslutningssträng syntax finns i ConnectionString. |
System.Data.OleDb | Ger dataåtkomst för datakällor som exponeras med hjälp av OLE DB. Mer information om anslutningssträng syntax finns i ConnectionString. |
System.Data.Odbc | Ger dataåtkomst för datakällor som exponeras med HJÄLP av ODBC. Mer information om anslutningssträng syntax finns i ConnectionString. |
System.Data.OracleClient | Ger dataåtkomst för Oracle version 8.1.7 eller senare. Mer information om anslutningssträng syntax finns i ConnectionString. |
Anslutningssträngsbyggare
ADO.NET 2.0 introducerade följande anslutningssträng-byggare för .NET Framework-dataprovidrar.
- SqlConnectionStringBuilder
- OleDbConnectionStringBuilder
- OdbcConnectionStringBuilder
- OracleConnectionStringBuilder
Med anslutningssträng byggare kan du skapa syntaktiskt giltiga anslutningssträng vid körning, så att du inte behöver sammanfoga anslutningssträng värden manuellt i koden. Mer information finns i Anslutningssträngsbyggare.
Windows-autentisering
Windows-autentisering (kallas ibland integrerad säkerhet) kan användas för att ansluta till datakällor som stöder den. Syntaxen som används i anslutningssträng varierar beroende på provider. I följande tabell visas den Windows-autentiseringssyntax som används med .NET Framework-dataprovidrar.
Provider | Syntax |
---|---|
SqlClient |
Integrated Security=true; -- or -- Integrated Security=SSPI; |
OleDb |
Integrated Security=SSPI; |
Odbc |
Trusted_Connection=yes; |
OracleClient |
Integrated Security=yes; |
Kommentar
Integrated Security=true
utlöser ett undantag när det används med providern OleDb
.
Viktigt!
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Om du ansluter till Azure SQL är hanterade identiteter för Azure-resurser den rekommenderade autentiseringsmetoden.
SqlClient-anslutningssträng
Syntaxen för en SqlConnection anslutningssträng dokumenteras i egenskapen SqlConnection.ConnectionString . Du kan använda egenskapen ConnectionString för att hämta eller ange en anslutningssträng för en SQL Server-databas. Om du behöver ansluta till en tidigare version av SQL Server måste du använda .NET Framework Data Provider för OleDb (System.Data.OleDb). De flesta anslutningssträng nyckelord mappas också till egenskaper i SqlConnectionStringBuilder.
Viktigt!
Standardinställningen för nyckelordet Persist Security Info
är false
. Om du ställer in den på true
eller yes
gör det möjligt att hämta säkerhetskänslig information, inklusive användar-ID och lösenord, från anslutningen när anslutningen har öppnats. Håll Persist Security Info
dig inställd på false
för att säkerställa att en ej betrodd källa inte har åtkomst till känslig anslutningssträng information.
Windows-autentisering med SqlClient
Var och en av följande syntaxformer använder Windows-autentisering för att ansluta till AdventureWorks-databasen på en lokal 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)"
Viktigt!
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Om du ansluter till Azure SQL är hanterade identiteter för Azure-resurser den rekommenderade autentiseringsmetoden.
SQL Server-autentisering med SqlClient
Windows-autentisering rekommenderas för anslutning till SQL Server (lokalt). Om SQL Server-autentisering krävs använder du dock följande syntax för att ange ett användarnamn och lösenord. I det här exemplet används asterisker för att representera ett giltigt användarnamn och lösenord.
"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"
När du ansluter till Azure SQL Database eller Till Azure SQL Data Warehouse och anger en inloggning i formatet user@servername
kontrollerar du att servername
värdet i inloggningen matchar det angivna värdet för Server=
.
Kommentar
Windows-autentisering har företräde framför SQL Server-inloggningar. Om du anger både Integrated Security=true
användarnamn och lösenord ignoreras användarnamnet och lösenordet och Windows-autentisering används.
Viktigt!
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Om du ansluter till Azure SQL är hanterade identiteter för Azure-resurser den rekommenderade autentiseringsmetoden.
Ansluta till en namngiven instans av SQL Server
Om du vill ansluta till en namngiven instans av SQL Server använder du syntaxen för servernamn\instansnamn .
"Data Source=MySqlServer\\MSSQL1;"
Du kan också ange DataSource egenskapen SqlConnectionStringBuilder
för instansnamnet när du skapar en anslutningssträng. Egenskapen DataSource för ett SqlConnection objekt är skrivskyddad.
Skriv systemversionsändringar
Nyckelordet Type System Version
i en SqlConnection.ConnectionString anger representationen på klientsidan av SQL Server-typer. Mer SqlConnection.ConnectionString information om nyckelordet finns i Type System Version
.
Ansluta till SQL Server Express-användarinstanser
Användarinstanser är en funktion i SQL Server Express. De gör det möjligt för en användare som körs på ett lokalt Windows-konto med minst privilegier att ansluta och köra en SQL Server-databas utan att kräva administratörsbehörighet. En användarinstans körs med användarens Windows-autentiseringsuppgifter, inte som en tjänst.
Mer information om hur du arbetar med användarinstanser finns i SQL Server Express-användarinstanser.
Använda TrustServerCertificate
Nyckelordet TrustServerCertificate
är endast giltigt när du ansluter till en SQL Server-instans med ett giltigt certifikat. När TrustServerCertificate
är inställt på true
använder transportlagret SSL för att kryptera kanalen och kringgå att gå igenom certifikatkedjan för att verifiera förtroendet.
"TrustServerCertificate=true;"
Kommentar
Om TrustServerCertificate
är inställt true
på och kryptering är aktiverat används den krypteringsnivå som anges på servern även om Encrypt
den är inställd false
på i anslutningssträng. Anslutningen misslyckas annars.
Aktivera kryptering
Om du vill aktivera kryptering när ett certifikat inte har etablerats på servern måste alternativen Force Protocol Encryption och Trust Server Certificate anges i Konfigurationshanteraren för SQL Server. I det här fallet använder kryptering ett självsignerat servercertifikat utan validering om inget verifierbart certifikat har etablerats på servern.
Programinställningar kan inte minska den säkerhetsnivå som konfigurerats i SQL Server, men kan eventuellt stärka den. Ett program kan begära kryptering genom att ange nyckelorden TrustServerCertificate
och Encrypt
till true
, vilket garanterar att kryptering sker även när ett servercertifikat inte har etablerats och Force Protocol Encryption inte har konfigurerats för klienten. Men om TrustServerCertificate
det inte är aktiverat i klientkonfigurationen krävs fortfarande ett etablerat servercertifikat.
I följande tabell beskrivs alla fall.
Tvinga protokollkrypteringsklientinställning | Klientinställning för betrodd servercertifikat | Kryptera/använda kryptering för data anslutningssträng/attribut | Betrodd servercertifikat anslutningssträng/attribut | Result |
---|---|---|---|---|
Nej | Ej tillämpligt | Nej (standard) | Har ignorerats | Ingen kryptering sker. |
Nej | Saknas | Ja | Nej (standard) | Kryptering sker endast om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
Nej | Saknas | Ja | Ja | Kryptering sker alltid, men kan använda ett självsignerat servercertifikat. |
Ja | Nej | Har ignorerats | Har ignorerats | Kryptering sker endast om det finns ett verifierbart servercertifikat. annars misslyckas anslutningsförsöket. |
Ja | Ja | Nej (standard) | Har ignorerats | Kryptering sker alltid, men kan använda ett självsignerat servercertifikat. |
Ja | Ja | Ja | Nej (standard) | Kryptering sker endast om det finns ett verifierbart servercertifikat. annars misslyckas anslutningsförsöket. |
Ja | Ja | Ja | Ja | Kryptering sker alltid, men kan använda ett självsignerat servercertifikat. |
Mer information finns i Använda kryptering utan validering.
OleDb-anslutningssträng
Med ConnectionString egenskapen för en OleDbConnection kan du hämta eller ange en anslutningssträng för en OLE DB-datakälla, till exempel Microsoft Access. Du kan också skapa en OleDb
anslutningssträng vid körning med hjälp OleDbConnectionStringBuilder av klassen .
OleDb anslutningssträng syntax
Du måste ange ett providernamn för en OleDbConnection anslutningssträng. Följande anslutningssträng ansluter till en Microsoft Access-databas med jetprovidern. Observera att nyckelorden User ID
och Password
är valfria om databasen är oskyddad (standard).
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;
Om Jet-databasen skyddas med hjälp av säkerhet på användarnivå måste du ange platsen för arbetsgruppsinformationsfilen (.mdw). Informationsfilen för arbetsgrupp används för att verifiera de autentiseringsuppgifter som visas i anslutningssträng.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;
Viktigt!
Det är möjligt att ange anslutningsinformation för en OleDbConnection i en UDL-fil (Universal Data Link), men du bör undvika att göra det. UDL-filer krypteras inte och exponerar anslutningssträng information i klartext. Eftersom en UDL-fil är en extern filbaserad resurs för ditt program kan den inte skyddas med hjälp av .NET Framework. UDL-filer stöds inte för SqlClient.
Viktigt!
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Om du ansluter till Azure SQL är hanterade identiteter för Azure-resurser den rekommenderade autentiseringsmetoden.
Använda DataDirectory för att ansluta till Access/Jet
DataDirectory
är inte exklusivt för SqlClient
. Det kan också användas med System.Data.OleDb .NET-dataprovidrar och System.Data.Odbc . Följande exempelsträng OleDbConnection visar den syntax som krävs för att ansluta till Northwind.mdb som finns i programmets app_data mapp. Systemdatabasen (System.mdw) lagras också på den platsen.
"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\Northwind.mdb;
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"
Viktigt!
Det krävs inte att du anger platsen för systemdatabasen i anslutningssträng om Access/Jet-databasen är oskyddad. Säkerheten är inaktiverad som standard, där alla användare ansluter som den inbyggda administratörsanvändaren med ett tomt lösenord. Även när säkerhet på användarnivå implementeras korrekt är en Jet-databas fortfarande sårbar för angrepp. Därför rekommenderas inte lagring av känslig information i en Access/Jet-databas på grund av den inneboende svagheten i dess filbaserade säkerhetsschema.
Ansluta till Excel
Microsoft Jet-providern används för att ansluta till en Excel-arbetsbok. I följande anslutningssträng anger nyckelordet Extended Properties
egenskaper som är specifika för Excel. "HDR=Yes;" anger att den första raden innehåller kolumnnamn, inte data, och "IMEX=1;" instruerar drivrutinen att alltid läsa "blandade" datakolumner som text.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""
Observera att det dubbla citattecken som krävs för Extended Properties
måste också omges av dubbla citattecken.
Dataformprovider anslutningssträng syntax
Använd både nyckelorden Provider
Data Provider
och när du använder Microsoft Data Shape-providern. I följande exempel används Formprovidern för att ansluta till en lokal instans av SQL Server.
"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"
Viktigt!
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Om du ansluter till Azure SQL är hanterade identiteter för Azure-resurser den rekommenderade autentiseringsmetoden.
Odbc anslutningssträng
Med ConnectionString egenskapen för en OdbcConnection kan du hämta eller ange en anslutningssträng för en OLE DB-datakälla. Odbc-anslutningssträng stöds också av OdbcConnectionStringBuilder.
Följande anslutningssträng använder Microsoft Text Driver.
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin
Oracle-anslutningssträng
Med ConnectionString egenskapen för en OracleConnection kan du hämta eller ange en anslutningssträng för en OLE DB-datakälla. Oracle-anslutningssträng stöds också av OracleConnectionStringBuilder .
Data Source=Oracle9i;User ID=*****;Password=*****;
Mer information om ODBC-anslutningssträng syntax finns i ConnectionString.
Viktigt!
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Om du ansluter till Azure SQL är hanterade identiteter för Azure-resurser den rekommenderade autentiseringsmetoden.