Go-MSSQLDB kapcsolási stringek

Az go-mssqldb illesztőprogram három kapcsolati karakterlánc formátumot fogad el: URL, ADO és ODBC. Mindhárom formátum ugyanazt a kapcsolati paraméterkészletet támogatja. Válaszd ki azt a formátumot, amely a legjobban illik az alkalmazásodhoz vagy telepítési modelledhez.

Tip

Használj URL formátumot új Go alkalmazásokhoz. Integrálódik a Go net/url csomagjával a biztonságos kódoláshoz és a programozott felépítéshez. Használj ADO formátumot a .NET alkalmazásokból történő csatlakozási láncok portolásakor, és ODBC formátumot használj, ha a merevítő kilépés kényelmesebb, olyan értékek esetén, amelyek célzókat vagy más speciális karaktereket tartalmaznak.

URL-formátum

Az URL formátum követi a sqlserver:// rendszert, és a leggyakoribb formátum a Go alkalmazásoknál:

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

Examples

Csatlakozz egy helyi alapértelmezett példányhoz SQL hitelesítéssel:

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

Csatlakozás elnevezett példányhoz:

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

Használd a Windows authentication-t (csak Windows esetén):

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

Megjegyzés:

Az URL formátumban a port alapértelmezett 1433-as formátumra kerül. Más port megadásához a host után kell hozzáadni: sqlserver://<server>:1434?database=AdventureWorks2025.

Jelszavakban speciális karakterek

URL formátumban a speciális karakterekkel rendelkező jelszavakat százalékos kódolással kell beosztani. Gyakori karakterek, amelyek kódolást igényelnek:

Character Encoded Példajelszó Kódolt 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

Használat url.UserPassword() az automatikus kódolás kezelésére:

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

Az ADO formátumban a százalékos kódolás nem szükséges. Ha egy érték tartalmaz félbassort, tekerd idézőjelbe: password="<password>". ODBC formátumban tekerd be az értéket fogszabályzókba: password={<password>}.

ADO formátum

Az ADO formátum helyeskolt key=value párokat használ:

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

ADO példák

Csatlakozz egy portszámhoz:

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

Csatlakozás elnevezett példányhoz:

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

Megjegyzés:

Az ADO formátumban a server és port mezők külön paraméterek. Ne vegyél be egy kolont elválasztott portot az server értékbe.

ODBC formátum

Az ODBC formátum a odbc: pretagot szóbasszony elválasztott key=value párokkal használja. Speciális karaktereket tartalmazó értékek rögzítőbe zárhatók:

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

Fogszabályzók menekülnek

ODBC formátumban tekerd be az értéket {} , hogy elkerüljük a félbastolokat, egyenlő jeleket és egyéb speciális karaktereket. A belső fogszabályzó } szó szerinti beépítéshez duplázzuk meg:

odbc:password={my}}password}

Gyakori paraméterek

A következő paraméterek mind a három formátumban megosztottak:

Paraméter Aliases Description
user id user SQL Server login name.
password - Jelszó az SQL Server bejelentkezéshez.
database - Céladatbázis neve.
connection timeout - Bejelentkezési időkorlát másodpercek alatt. A driver alapértelmezett , 0amely korlátlan ideig vár. Inkább Go kontextusokat használok a kapcsolat és lekérdezési időkorlátok vezérléséhez.
dial timeout - A hálózati tárcsázás időkorlátja másodpercek alatt. Az illesztőprogram alapértelmezett a regisztrált protokollokon alapul. Korlátlan ideig várakozásra állítva 0 .
encrypt - Titkosítási mód: strict, true/mandatory,false/optional , . disable Ha kihagyjuk, az alapértelmezett .false/optional Azure SQL és production connections esetén encrypt=true állítsd explicit.
TrustServerCertificate - Hagyd ki a tanúsítvány ellenőrzését. Ha encrypt van megadva, az alapértelmezett .false Ha encrypt ki van hagyva, az alapértelmezett .true Használat false termeléshez és Azure SQL kapcsolatokhoz.
app name - Az alkalmazás neve továbbítja a szervernek.
authenticator - Egyedi hitelesítés. A azuread csomag belső használata.

A csatlakozási lehetőségek teljes listájáért lásd: Kapcsolati opciók.

Kapcsolódási láncok építése kódban

Használd a url.URL típust vagy msdsn.Config szerkezetet a csatlakozási stringek programmaztikus építésére a nyers stringek összekötése helyett. Ez a megközelítés elkerüli az injekciós és kódolási problémákat.

URL builder

Használja url.URL a szabványos könyvtárból a kapcsolati karakterlánc biztonságos megépítéséhez:

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

Használd NewConnectorConfig a msdsn.Config With strukturált konfigurációhoz, különösen amikor egyedi tárcsázót kell beállítani, SessionInitSQL, vagy explicit TLS beállításokat, például TrustServerCertificate:

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)

Ha még mindig a lejáratott mssql drivernév viselkedésére támaszkodsz, amely átírja ? a helykitöltőket, használd NewConnectorWithProcessQueryText helyett NewConnectorConfig , amikor a csatlakozót építed.