Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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¶m=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 napříč všemi třemi formáty. Ovladač vyřeší aliasy pouze v ADO formátu connection strings. Spojovací řetězce ve formátu URL a ODBC přesně odpovídají názvům parametrů, kromě case.
| 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 pro výměnu přihlášení během několika sekund. Výchozí nastavení ovladače je 0, což neplatí pro přihlašovací výměnu bez timeoutu. Počáteční síťové spojení je ohraničeno samostatně .dial timeout Preferuji používat Go kontexty pro řízení časových limitů připojení a dotazů. U serverless Azure SQL Database s povolenou automatickou pauzou selže první spojení s pozastavenou databází s chybou 40613, zatímco databáze pokračuje. Přidejte logiku opakovaného pokusu místo delšího timeoutu. Databáze se obvykle obnoví za méně než jednu minutu. Více informací naleznete v části Automatické pozastavení a automatické obnovení. |
dial timeout |
- | Časový limit síťového čísla během několika sekund. Výchozí nastavení ovladače je 15 sekund na jeden registrovaný protokol. Nastavení aplikuje 0 stejný výchozí stav místo nekonečného čekání. |
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 NewConnectorWithProcessQueryText toho při NewConnectorConfig stavbě konektoru.