Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln listar varje reťazec pripojenia-nyckelord som Microsoft. Data.SqlClient accepterar. Varje nyckelord har också en matchande SqlConnectionStringBuilder egenskap. För en introduktion, vanliga mönster och parsningsregler, se Anslutningssträngar.
Nyckelord och alias är inte kasuskänsliga. När du sätter ett värde via en byggaregenskap skriver byggaren det kanoniska nyckelordet i kolumnen Nyckelord .
Sätt inställningar med SqlConnectionStringBuilder
Börja från en grundläggande reťazec pripojenia som innehåller server, databas och autentiseringsinställningar. Ställ sedan in arbetsbelastningsspecifika alternativ via builder-egenskaper. .NET Framework-flikarna använder C# 7.3. För att skapa ett projekt som kör proverna, se Skapa projektet.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("SQL_CONNECTION_STRING")
?? throw new InvalidOperationException(
"Set the SQL_CONNECTION_STRING environment variable.");
var builder = new SqlConnectionStringBuilder(connectionString)
{
ApplicationName = "Orders.Worker",
ConnectTimeout = 30,
CommandTimeout = 60,
MaxPoolSize = 50,
};
await using var connection = new SqlConnection(builder.ConnectionString);
await connection.OpenAsync();
await using var command = new SqlCommand("SELECT APP_NAME();", connection);
Console.WriteLine($"APP_NAME(): {await command.ExecuteScalarAsync()}");
Console.WriteLine($"Connection timeout: {connection.ConnectionTimeout}");
Console.WriteLine($"Command timeout: {command.CommandTimeout}");
Resultatet är:
APP_NAME(): Orders.Worker
Connection timeout: 30
Command timeout: 60
En ny SqlCommand tar sin standardtimeout från Command Timeout nyckelordet för dess anslutning.
Kontrollera standardvärden
En ny SqlConnectionStringBuilder rapporterar standarden för varje alternativ. Detta program skriver ut standardinställningarna som de flesta applikationer granskar:
using Microsoft.Data.SqlClient;
var defaults = new SqlConnectionStringBuilder();
Console.WriteLine($"Connect Timeout: {defaults.ConnectTimeout}");
Console.WriteLine($"Command Timeout: {defaults.CommandTimeout}");
Console.WriteLine($"Connect Retry Count: {defaults.ConnectRetryCount}");
Console.WriteLine($"Connect Retry Interval: {defaults.ConnectRetryInterval}");
Console.WriteLine($"Encrypt: {defaults.Encrypt}");
Console.WriteLine($"Trust Server Certificate: {defaults.TrustServerCertificate}");
Console.WriteLine($"Pooling: {defaults.Pooling}");
Console.WriteLine($"Min Pool Size: {defaults.MinPoolSize}");
Console.WriteLine($"Max Pool Size: {defaults.MaxPoolSize}");
Console.WriteLine($"Connection Idle Timeout: {defaults.IdleTimeout}");
Console.WriteLine($"Load Balance Timeout: {defaults.LoadBalanceTimeout}");
Console.WriteLine($"Packet Size: {defaults.PacketSize}");
Console.WriteLine($"Multi Subnet Failover: {defaults.MultiSubnetFailover}");
Console.WriteLine($"IP Address Preference: {defaults.IPAddressPreference}");
Console.WriteLine($"Pool Blocking Period: {defaults.PoolBlockingPeriod}");
Console.WriteLine($"Application Intent: {defaults.ApplicationIntent}");
Console.WriteLine($"Application Name: {defaults.ApplicationName}");
Console.WriteLine($"Type System Version: {defaults.TypeSystemVersion}");
Console.WriteLine($"Transaction Binding: {defaults.TransactionBinding}");
På .NET är utdatan:
Connect Timeout: 15
Command Timeout: 30
Connect Retry Count: 1
Connect Retry Interval: 10
Encrypt: True
Trust Server Certificate: False
Pooling: True
Min Pool Size: 0
Max Pool Size: 100
Connection Idle Timeout: 300
Load Balance Timeout: 0
Packet Size: 8000
Multi Subnet Failover: False
IP Address Preference: IPv4First
Pool Blocking Period: Auto
Application Intent: ReadWrite
Application Name: Core Microsoft SqlClient Data Provider
Type System Version: Latest
Transaction Binding: Implicit Unbind
Encrypt: True är alternativet Mandatory . På .NET Framework är Framework Microsoft SqlClient Data Providerstandardnamnet på applikationen .
Server- och databasalternativ
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Data Source |
Server, Address, Addr, Network Address |
DataSource |
Tomt | Servern att ansluta till. Accepterar ett värdnamn, host,port, host\instance, (localdb)\instance, och ett tcp: eller np: protokollprefix. För de accepterade formulären, se Specificera servern och databasen. |
Initial Catalog |
Database |
InitialCatalog |
Tomt | Databasen att använda efter inloggning. När den är tom använder servern inloggningens standarddatabas. |
AttachDbFilename |
Extended Properties, Initial File Name |
AttachDBFilename |
Tomt | Den fullständiga vägen för en primär databasfil att bifoga, för SQL Server Express och LocalDB. |
User Instance |
None | UserInstance |
false |
Omdirigerar anslutningen till en SQL Server Express-användarinstans. För mer information, se SQL Server Express användarinstanser. |
Failover Partner |
FailoverPartner |
FailoverPartner |
Tomt | Databasspegelpartnern för att försöka när primärservern inte är tillgänglig. Databasspegling är föråldrad. Använd tillgänglighetsgrupper för nya distributioner. |
Current Language |
Language |
CurrentLanguage |
Tomt | SQL Server-språkets namn för sessionen, såsom us_english. Kontrollerar datumformat och systemmeddelandespråk. |
Applikationsidentitetsalternativ
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Application Name |
App |
ApplicationName |
Core Microsoft SqlClient Data Provider |
Namnet som servern rapporterar genom APP_NAME() och i sessionsvyer. Använd ett stabilt namn för varje distribuerad arbetsbelastning. Distinkta värden skapar olika kopplingspooler. |
Workstation ID |
WorkstationID, WSID |
WorkstationID |
Namnet på den lokala datorn | Klientdatorns namn som servern rapporterar genom HOST_NAME(). |
Application Intent |
ApplicationIntent |
ApplicationIntent |
ReadWrite |
ReadOnly begär läsavsiktsroutning när målet stöder det. Den gör inte uttalanden skrivskyddade. För mer information, se Hög tillgänglighet och katastrofåterställning. |
För att rapportera vilket ramverk eller verktyg som öppnade en anslutning, använd egenskapen RegisteredApplication . Det finns inget reťazec pripojenia-nyckelord. För mer information, se Rapportera applikationens identitet.
Autentiseringsalternativ
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Authentication |
None | Authentication |
Har inte angetts | Autentiseringsmetoden. För accepterade värden, se följande tabell. |
Integrated Security |
Trusted_Connection |
IntegratedSecurity |
false |
true, yes, eller sspi använder identiteten för den aktuella processen. |
User ID |
UID, User |
UserID |
Tomt | SQL-inloggningsnamnet, eller Microsoft Entra ID:s användar- eller klientidentifierare, beroende på Authentication. |
Password |
PWD |
Password |
Tomt | Lösenordet eller klienthemligheten för metoder som accepterar en. |
Persist Security Info |
PersistSecurityInfo |
PersistSecurityInfo |
false |
När false, tar drivrutinen bort lösenordet från SqlConnection.ConnectionString efter att anslutningen öppnats. Låt det vara false. |
Server SPN |
ServerSPN |
ServerSPN |
Härlett från servernamnet | Åsidosätter Service Principal Name (SPN) som används för integrerad autentisering till primärservern. |
Failover Partner SPN |
FailoverPartnerSPN |
FailoverPartnerSPN |
Härlett från partnernamnet | Åsidosätter SPN:n som används för integrerad autentisering till failover-partnern. |
Authentication accepterar dessa värderingar. Byggaren skriver dem utan mellanslag, såsom ActiveDirectoryDefault, och parsern accepterar båda formerna.
| Value | Identity |
|---|---|
Sql Password |
En SQL-inloggning med User ID och Password. |
Active Directory Default |
En kedja av inloggningskällor, såsom miljövariabler, hanterad identitet och inloggning för utvecklarverktyg. |
Active Directory Managed Identity |
En hanterad identitet. Ställ User ID in till klient-ID för en användartilldelad identitet.
služba Active Directory MSI är ett alias. |
Active Directory Workload Identity |
En Kubernetes-arbetsbelastningsidentitet. |
Active Directory Service Principal |
En applikation med User ID inställning till klient-ID och Password klienthemlighet. |
Active Directory Interactive |
En användare som loggar in via en webbläsarprompt. |
Active Directory Device Code Flow |
En användare som loggar in på en annan enhet med en kod. |
Active Directory Integrated |
Den inloggade Windows-användaren, via en federerad eller sömlös enkel inloggningskonfiguration. |
Active Directory Password |
Ett användarnamn och lösenord. Den här metoden är föråldrad. Använd en annan metod. |
Microsoft Entra ID-metoder kräver paketetMicrosoft.Data.SqlClient.Extensions.Azure. För uppsättning och exempel, se Microsoft Entra ID-autentisering och SQL Server-autentisering.
Krypteringsalternativ
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Encrypt |
None | Encrypt |
Mandatory |
Strict använder TDS 8.0 och validerar alltid servercertifikatet.
Mandatory, true, eller yes krypterar anslutningen.
Optional, false, eller no krypterar hela anslutningen endast när servern kräver det. När servern stödjer kryptering men inte kräver det, är det bara inloggningspaketet som krypteras. |
Trust Server Certificate |
TrustServerCertificate |
TrustServerCertificate |
false |
true Hoppar över validering av servercertifikat. Ignoreras när Encrypt=Strict. Använd den inte i produktion. |
Host Name In Certificate |
HostNameInCertificate |
HostNameInCertificate |
Tomt | Ett reservnamn för certifikatvalidering. SqlClient validerar först certifikatet mot servernamnet i Data Source. Den kontrollerar Host Name In Certificate bara när det namnet inte stämmer, så ett felaktigt värde orsakar inte ett fel när servernamnet redan stämmer. Det fäster inget certifikat. För att kräva ett specifikt certifikat, använd Server Certificate. Det ändrar inte nätverksdestinationen eller kringgår förtroendekedja och utgångskontroller. Låt den vara oaktiverad när servernamnet redan matchar certifikatet. |
Server Certificate |
ServerCertificate |
ServerCertificate |
Tomt | Sökvägen för en PEM-, DER- eller CER-fil som exakt måste matcha servercertifikatet. Föraren kontrollerar matchningen endast när den validerar certifikatet, så använd det med Encrypt=Mandatory eller Encrypt=Strict och Trust Server Certificate=false. En matchande fil ersätter verifiering av kedjan och värdnamnet, så den fungerar med ett självsignerat certifikat som klienten inte litar på. |
För fullständiga valideringsregler, se Kryptering och certifikatvalidering.
Alltid krypterade alternativ
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Column Encryption Setting |
ColumnEncryption |
ColumnEncryptionSetting |
Disabled |
Enabled aktiverar Alltid krypterat för anslutningen. |
Attestation Protocol |
None | AttestationProtocol |
Har inte angetts | Enklavattesteringsprotokollet: AAS, HGS, eller None. |
Enclave Attestation Url |
None | EnclaveAttestationUrl |
Tomt | Attestationstjänstens endpoint för Always Encrypted with secure enclaves. |
Nätverksalternativ
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Multi Subnet Failover |
MultiSubnetFailover |
MultiSubnetFailover |
false |
Försöker alla IP-adresser som servernamnet löses till parallellt. Använd det för tillgänglighetsgrupplyssnare och failover-klusterinstanser som nås via TCP. Stöds inte med databasspegling. Namngivna instanser beror på nätverksimplementationen. Den hanterade implementationen, som .NET använder på Linux och macOS samt på Windows när hanterad nätverksfunktion är på, stöder en namngiven instans och skickar SQL Server Browser-begäran till varje löst adress parallellt. Den inbyggda implementationen på Windows kan avvisa en namngiven instans med SNI-fel 48. |
IP Address Preference |
IPAddressPreference |
IPAddressPreference |
IPv4First |
Ordningen för att försöka lösa adresser: IPv4First, IPv6First, eller UsePlatformDefault. |
Packet Size |
PacketSize |
PacketSize |
8000 |
Tabular Data Stream (TDS)-paketstorleken i bytes, från 512 till 32 768. |
Ett processomfattande AppContext-byte kan ändra standardinställningen Multi Subnet Failover till true. För mer information, se AppContext-switchar i SqlClient.
Timeout-alternativ
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Connect Timeout |
Connection Timeout, ConnectTimeout, Timeout |
ConnectTimeout |
15 |
Sekunder att vänta på en anslutning, inklusive väntan på en poolad anslutning när poolen är full.
0 väntar på obestämd tid. |
Command Timeout |
None | CommandTimeout |
30 |
Standarden CommandTimeout i sekunder för kommandon som skapas på anslutningen.
0 väntar på obestämd tid. |
Connect Timeout Det begränsar inte frågeexekveringen.
Command Timeout Det begränsar inte inloggning eller väntan på en poolad anslutning. Skicka a CancellationToken till asynkrona samtal så att uppringaren kan sluta vänta innan någon av timeouterna går ut.
Alternativ för anslutningsåterställning
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Connect Retry Count |
ConnectRetryCount |
ConnectRetryCount |
1 |
Omprov efter ett kval-passientfel under första öppningen och när man återställde en trasig tomgångsanslutning.
0 stänger av omförsök. Giltiga värden är 0 till 255. |
Connect Retry Interval |
ConnectRetryInterval |
ConnectRetryInterval |
10 |
Sekunder mellan försöken till om. Giltiga värden är 1 till 60. |
När Connect Retry Count är 1, vilket är standard, använder 2 drivrutinen för Azure SQL-endpoints och 5 för Azure Synapse Analytics serverless SQL pool-endpoints när den återställer en bruten idle-anslutning. Den första öppningen använder värdet som satt, så standarden tillåter ett nytt försök på varje ändpunkt. Drivrutinen använder ett annat värde som är satt i båda fallen.
Dessa nyckelord försöker inte om ett kommando som misslyckas medan det körs. För att hoppa över det inbyggda försöket för en öppen, anropa en Open överbelastning med OpenWithoutRetry. För anpassade policyer, se Konfigurerbar återförsökslogik. Försök om ett kommando bara när det är säkert att upprepa det.
Alternativ för poolning
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Pooling |
None | Pooling |
true |
Återanvänder fysiska kopplingar för att matcha anslutningssträngar. |
Min Pool Size |
None | MinPoolSize |
0 |
Fysiska kopplingar som poolen håller öppna efter att den har skapats. |
Max Pool Size |
None | MaxPoolSize |
100 |
De flesta fysiska kopplingarna i en pool. Måste vara minst 1. |
Connection Idle Timeout |
None | IdleTimeout |
300 |
Sekunder då en anslutning kan stå stilla i poolen innan poolen stänger den.
0 stänger av tomgångsutlopp. Endast upprätthållen när AppContext-omkopplingen Switch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior är false. Som standardvärde är det true. |
Load Balance Timeout |
Connection Lifetime |
LoadBalanceTimeout |
0 |
Den maximala åldern i sekunder för en anslutning som återvänder till poolen. En äldre anslutning är stängd.
0 stänger av gränsen. |
Pool Blocking Period |
PoolBlockingPeriod |
PoolBlockingPeriod |
Auto |
Om poolen kastar om ett cachelagrat inloggningsfel under en kort period: Auto, AlwaysBlock, eller NeverBlock.
Autostänger av blockeringen för Azure SQL-endpoints. |
Varje distinkt reťazec pripojenia får sin egen pool. För poolnycklar, rensning och inaktiv, se SQL Server connection pooling.
Transaktions- och sessionsalternativ
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Enlist |
None | Enlist |
true |
Aktiverar anslutningen i ambient-transaktionen System.Transactions när den öppnas. |
Transaction Binding |
None | TransactionBinding |
Implicit Unbind |
Implicit Unbind kopplar från anslutningen när transaktionen för värvade avslutas.
Explicit Unbind Behåller den ansluten tills anslutningen stängs eller koden kopplar bort den. |
Multiple Active Result Sets |
MultipleActiveResultSets |
MultipleActiveResultSets |
false |
Tillåter mer än en aktiv batch på en och samma anslutning. |
Type System Version |
None | TypeSystemVersion |
Latest |
Servertypen av system som drivrutinen exponerar. Accepterar Latest, SQL Server 2012, SQL Server 2008, och SQL Server 2005. Lämna det vid Latest. |
Replication |
None | Replication |
false |
Identifierar anslutningen som en replikationsanslutning. |
.NET Framework endast alternativ
Dessa nyckelord accepteras endast på .NET Framework. På .NET kastar NotSupportedException byggaren och SqlConnection kastar ArgumentException.
| Keyword | Aliases | Byggarfastighet | Standardinställning | Beskrivning |
|---|---|---|---|---|
Network Library |
Net, Network |
NetworkLibrary |
Tomt | Nätverksbiblioteket. Kombinera det inte med a tcp: eller np: prefix i Data Source, eftersom anslutningen misslyckas. På .NET, prefixet Data Source med tcp: eller np: istället. |
Connection Reset |
None | ConnectionReset |
true |
Obsolete. |
Transparent Network IP Resolution |
TransparentNetworkIPResolution |
TransparentNetworkIPResolution |
true |
Obsolete. |
Ej stödda nyckelord
| Keyword | Result |
|---|---|
Context Connection |
Context Connection=true kastar InvalidOperationException. Microsoft. Data.SqlClient stöder inte SQL CLR-kontextanslutningar. |
Asynchronous Processing |
Kastar ArgumentException: Keyword not supported. Asynkrona metoder fungerar utan det. |
Driver, Provider |
Kastar ArgumentException: Keyword not supported. Dessa nyckelord tillhör ODBC och OLE DB. |
Valideringsregler
SqlConnectionStringBuilder Förkastar okända nyckelord och många ogiltiga värden när du sätter dem.
SqlConnectionUtför fler kontroller när du ställer in dess reťazec pripojenia, inklusive enskilda värden som byggaren accepterar och kombinationer av nyckelord. En sträng som byggaren accepterar kan fortfarande misslyckas när du skapar anslutningen.
Byggaren och kopplingen förkastar dessa värden med ArgumentException:
-
Connect Timeout,Command Timeout,Load Balance Timeout,Connection Idle Timeout, ellerMin Pool Sizemindre än 0. -
Max Pool Sizemindre än 1. -
Packet SizeUtanför 512 till 32 768. -
Connect Retry CountUtanför 0 till 255. -
Connect Retry IntervalUtanför 1 till 60. - Ett nyckelord som inte finns med i den här artikeln.
SqlConnection förkastar också dessa värden med ArgumentException, även om byggaren accepterar dem:
-
Type System VersionförutomLatest, , ,SQL Server 2008, ellerSQL Server 2005SQL Server 2012. -
Transaction Bindingannat änImplicit UnbindellerExplicit Unbind. - Ett värde längre än TDS-gränsen för
Application Name, , ,Data SourceFailover Partner, ,Initial CatalogPassword,User ID,Workstation IDellerAttachDBFilename.Current Language
SqlConnection avvisar också dessa kombinationer med ArgumentException:
-
Min Pool Sizestörre änMax Pool Size. -
Failover PartnerutanInitial Catalog. -
Failover PartnermedMulti Subnet Failover=true,User Instance=true, ellerApplication Intent=ReadOnly. -
AuthenticationmedIntegrated Security=true. -
Passwordmedslužba Active Directory Integrated,služba Active Directory Interactive, ,služba Active Directory Managed Identity,služba Active Directory MSI,služba Active Directory Default, , ellerslužba Active Directory Workload Identity. -
User IDellerPasswordmedslužba Active Directory Device Code Flow.
Ändringar i granskningsalternativ
Innan du ändrar ett alternativ i produktion:
- Registrera aktuell reťazec pripojenia, drivrutinsversion, endpoint-typ och problemet du löser.
- Byt ett alternativ i taget.
- Testa anslutningsetablering, autentisering, certifikatvalidering, anslutningspoolning, failover, avbrytning och frågekörning.
- Mät anslutningslatens, poolväntetid och felnummer.
- Bekräfta inställningen på varje distribuerad instans.
En ändrad reťazec pripojenia skapar en ny pool. Under en stegvis utrullning finns gamla och nya pooler samtidigt, så det totala antalet fysiska anslutningar till servern kan öka.