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