Anslut ionssträngssyntax

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.

Anslut ion String Builders

ADO.NET 2.0 introducerade följande anslutningssträng-byggare för .NET Framework-dataprovidrar.

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 Anslut ion String Builders.

Windows-autentisering

Vi rekommenderar att du använder Windows-autentisering (kallas ibland integrerad säkerhet) 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 .

SqlClient-Anslut ionssträngar

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

SQL Server-autentisering med SqlClient

Windows-autentisering rekommenderas för anslutning till SQL Server. 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@servernamekontrollerar 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 Integrerad säkerhet=sant samt användarnamn och lösenord ignoreras användarnamnet och lösenordet och Windows-autentiseringen används.

Anslut 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.

Typ av 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 .

Anslut ing och anslutning 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å trueanvä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 Resultat
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 Anslut ionssträngar

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 .

Syntax för OleDb-Anslut ionsträng

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 OleDb Anslut ion i en UDL-fil (Universal Data Link), men du bör undvika det. UDL-filer krypteras inte och exponerar anslutningssträng information i klartext. Eftersom en UDL-fil är en extern filbaserad resurs i ditt program kan den inte skyddas med hjälp av .NET Framework. UDL-filer stöds inte för SqlClient.

Använda DataDirectory för att Anslut 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.

Anslut 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.

Syntax för dataformprovider Anslut ionsträng

Använd både nyckelorden ProviderData 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;"

Odbc Anslut ionssträngar

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  

Använda DataDirectory för att Anslut till Visual FoxPro

Följande OdbcConnection anslutningssträng exempel visar hur du använder DataDirectory för att ansluta till en Microsoft Visual FoxPro-fil.

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

Oracle Anslut ionssträngar

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.

Se även