Go-mssqldb connection strings

Ovladač go-mssqldb přijímá tři formáty připojovací řetězec: URL, ADO a ODBC. Všechny tři formáty podporují stejnou sadu parametrů připojení. Vyberte formát, který nejlépe vyhovuje vaší aplikaci nebo modelu nasazení.

Tip

Pro nové aplikace v Go použijte formát URL. Integruje se s balíčkem net/url Go pro bezpečné kódování a programovou konstrukci. Při přenášení spojovacích řetězců z .NET aplikací používejte formát ADO a formát ODBC používejte při použití závorkového úniku pro hodnoty obsahující středníky nebo jiné speciální znaky.

Formát adresy URL

Formát URL následuje schéma sqlserver:// a je nejběžnějším formátem pro aplikace Go:

sqlserver://username:password@host:port?database=AdventureWorks2025&param=value

Příklady

Připojte se k lokální výchozí instanci pomocí SQL autentizace:

sqlserver://<user>:<password>@<server>?database=AdventureWorks2025

Připojení k pojmenované instanci:

sqlserver://<user>:<password>@<server>/myinstance?database=AdventureWorks2025

Connect to Azure SQL Database:

sqlserver://<user>:<password>@<server>.database.windows.net?database=AdventureWorks2025&encrypt=true&TrustServerCertificate=false

Používejte Windows authentication (pouze Windows):

sqlserver://<server>?database=AdventureWorks2025&trusted_connection=yes

Note

Ve formátu URL je port výchozí na 1433. Pro určení jiného portu jej přidejte za hostitelem: sqlserver://<server>:1434?database=AdventureWorks2025.

Speciální znaky v heslech

Ve formátu URL musí být hesla se speciálními znaky kódována procentuálně. Běžné znaky, které vyžadují kódování:

Znak Encoded Příklad hesla Zakódovaná forma
@ %40 p@ssword p%40ssword
: %3A p:ssword p%3Assword
/ %2F p/ssword p%2Fssword
# %23 p#ssword p%23ssword
% %25 p%ssword p%25ssword

Použití url.UserPassword() pro automatické zpracování kódování:

u := &url.URL{
    Scheme: "sqlserver",
    User:   url.UserPassword("<user>", "p@ss:word#1"),
    Host:   "<server>:1433",
}
u.RawQuery = url.Values{"database": {"AdventureWorks2025"}}.Encode()
// Result: sqlserver://<user>:p%40ss%3Aword%231@<server>:1433?database=AdventureWorks2025

Ve formátu ADO není nutné procentuální kódování. Pokud hodnota obsahuje středníky, zabalte ji do uvozovek: password="<password>". Ve formátu ODBC zabalte hodnotu místo toho do závorek: password={<password>}.

Formát ADO

Formát ADO používá páry oddělené key=value středníky:

server=<server>;user id=<user>;password=<password>;database=AdventureWorks2025

Příklady ADO

Připojte se pomocí čísla portu:

server=<server>;port=1434;user id=<user>;password=<password>;database=AdventureWorks2025

Připojení k pojmenované instanci:

server=<server>\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025

Note

Ve formátu server ADO jsou pole a port samostatné parametry. Do hodnoty neuvádějte port server oddělený dvojtečkou.

Formát ODBC

Formát ODBC používá odbc: předponu s páry oddělenými key=value středníky. Hodnoty obsahující speciální znaky lze uzavřít do závorek:

odbc:server=<server>;user id=<user>;password={<password>};database=AdventureWorks2025

Výztuhy unikají

Ve formátu ODBC se hodnota zabalí do pro {} únik středníků, rovnátek a dalších speciálních znaků. Pokud chcete zahrnout } doslovné vnitřní rovnátka, zdvojnásobte to:

odbc:password={my}}password}

Společné parametry

Následující parametry jsou sdíleny ve všech třech formátech:

Parameter Aliases Description
user id user Přihlašovací jméno SQL Server.
password - Heslo k přihlášení do SQL Server.
database - Název cílové databáze.
connection timeout - Timeout přihlášení během několika sekund. Výchozí ovladač je 0, který čeká neomezeně dlouho. Preferuji používat Go kontexty pro řízení časových limitů připojení a dotazů.
dial timeout - Časový limit síťového čísla během několika sekund. Výchozí nastavení ovladače je založeno na registrovaných protokolech. Nastavte 0 čekání na neomezený čas.
encrypt - Šifrovací režim: strict,true/mandatory , , . false/optionaldisable Pokud je vynechán, výchozí je .false/optional For Azure SQL and production connections, set encrypt=true explicitly.
TrustServerCertificate - Přeskočte ověřování certifikátů. Když encrypt je specifikováno, výchozí je false. Když encrypt je vynechán, výchozí je .true Použití false pro produkční a Azure SQL připojení.
app name - Název aplikace byl předán serveru.
authenticator - Vlastní autentizátor. Používá to interně v balíčku azuread .

Pro úplný seznam možností připojení viz Možnosti připojení.

Vytváření spojovacích řetězců v kódu

Použijte url.URL typ nebo msdsn.Config strukturu k programové budování spojovacích řetězců místo spojování surových řetězců. Tento přístup se vyhýbá problémům s injekcí a kódováním.

URL builder

Použijte url.URL ze standardní knihovny k bezpečné sestavě připojovací řetězec:

import "net/url"

query := url.Values{}
query.Add("database", "AdventureWorks2025")
query.Add("encrypt", "true")
query.Add("TrustServerCertificate", "false")

u := &url.URL{
    Scheme:   "sqlserver",
    User:     url.UserPassword("<user>", "<password>"),
    Host:     "<server>.database.windows.net:1433",
    RawQuery: query.Encode(),
}
connString := u.String()

NewConnectorConfig

Použijte NewConnectorConfig s pro msdsn.Config strukturovanou konfiguraci, zejména když potřebujete nastavit vlastní vytáčecí zařízení, SessionInitSQL, nebo explicitní TLS nastavení jako TrustServerCertificatejsou:

import (
    "database/sql"
    "github.com/microsoft/go-mssqldb"
    "github.com/microsoft/go-mssqldb/msdsn"
)

config := msdsn.Config{
    Host:                   "<server>",
    Port:                   1433,
    Database:               "AdventureWorks2025",
    TrustServerCertificate: false,
}

connector := mssql.NewConnectorConfig(config)
db := sql.OpenDB(connector)

Pokud stále spoléháte na mssql zastaralé chování jmen ovladačů, které přepisuje ? zástupné ovladače, používejte místo NewConnectorConfig toho při NewConnectorWithProcessQueryText stavbě konektoru.