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.
Drivrutinen go-mssqldb accepterar tre reťazec pripojenia-format: URL, ADO och ODBC. Alla tre format stöder samma uppsättning anslutningsparametrar. Välj det format som passar din applikation eller distributionsmodell bäst.
Tip
Använd URL-format för nya Go-applikationer. Det integreras net/url med Gos paket för säker kodning och programmatisk konstruktion. Använd ADO-formatet när du portar anslutningssträngar från .NET-applikationer, och använd ODBC-formatet när parentesescape är mer bekvämt för värden som innehåller semikolon eller andra specialtecken.
URL-format
URL-formatet följer schemat sqlserver:// och är det vanligaste formatet för Go-applikationer:
sqlserver://username:password@host:port?database=AdventureWorks2025¶m=value
Exempel
Koppla till en lokal standardinstans med SQL-autentisering:
sqlserver://<user>:<password>@<server>?database=AdventureWorks2025
Anslut till en namngiven instans:
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
Använd Windows authentication (endast Windows):
sqlserver://<server>?database=AdventureWorks2025&trusted_connection=yes
Note
I URL-formatet är porten standardinställning till 1433. För att specificera en annan port, inkludera den efter värden: sqlserver://<server>:1434?database=AdventureWorks2025.
Specialtecken i lösenord
I URL-format måste lösenord med specialtecken vara procentuellt kodade. Vanliga tecken som kräver kodning:
| Character | Encoded | Exempel på lösenord | Kodad form |
|---|---|---|---|
@ |
%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 |
Används url.UserPassword() för att hantera kodning automatiskt:
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
I ADO-format behövs inte procentkodning. Om ett värde innehåller semikolon, slå in det i dubbelcitattecken: password="<password>". I ODBC-format, slå istället in värdet i klammer: password={<password>}.
ADO-format
ADO-formatet använder semikolonseparerade key=value par:
server=<server>;user id=<user>;password=<password>;database=AdventureWorks2025
ADO-exempel
Koppla in med ett portnummer:
server=<server>;port=1434;user id=<user>;password=<password>;database=AdventureWorks2025
Anslut till en namngiven instans:
server=<server>\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025
Note
I ADO-formatet är fälten server och port separata parametrar. Inkludera inte en kolonseparerad port i värdet server .
ODBC-format
ODBC-formatet använder prefixet odbc: med semikolonseparerade key=value par. Värden som innehåller specialtecken kan omslutas av klammer:
odbc:server=<server>;user id=<user>;password={<password>};database=AdventureWorks2025
Tandställning som rymmer
I ODBC-format, slå in ett värde {} för att undvika semikolon, lika tecken och andra specialtecken. För att inkludera en bokstavlig } inre tandställning, dubbla den:
odbc:password={my}}password}
Gemensamma parametrar
Följande parametrar delas mellan alla tre format:
| Parameter | Aliases | Description |
|---|---|---|
user id |
user |
SQL Server-inloggningsnamn. |
password |
- | Lösenord för SQL Server-inloggningen. |
database |
- | Måldatabasens namn. |
connection timeout |
- | Inloggningstid om några sekunder. Drivrutinens standard är 0, som väntar obestämt. Föredrar att använda Go-kontexter för att styra anslutning och frågetidsavbrott. |
dial timeout |
- | Nätverksuppringningstimeout på några sekunder. Drivrutinens standard baseras på de registrerade protokollen. Inställd 0 på att vänta på obestämd tid. |
encrypt |
- | Krypteringsläge: strict, true/mandatory,false/optional , . disable När den utelämnas är false/optionalstandarden . För Azure SQL och produktionsanslutningar, sätt encrypt=true explicit. |
TrustServerCertificate |
- | Hoppa över certifikatvalidering. När encrypt anges är standarden .false När encrypt utelämnas är standardvärdet true. Använd false för produktions- och Azure SQL-anslutningar. |
app name |
- | Applikationsnamn skickades till servern. |
authenticator |
- | Anpassad autentisering. Används internt av paketet azuread . |
För hela listan över anslutningsalternativ, se Anslutningsalternativ.
Bygg anslutningssträngar i kod
Använd url.URL typen eller msdsn.Config strukturen för att bygga anslutningssträngar programmatiskt istället för att sammanfoga råsträngar. Denna metod undviker problem med injektion och kodning.
URL-byggare
Använd url.URL från standardbiblioteket för att säkert konstruera reťazec pripojenia:
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
Använd NewConnectorConfig med msdsn.Config för strukturerad konfiguration, särskilt när du behöver ställa in en anpassad uppringare, SessionInitSQL, eller explicita TLS-inställningar såsom 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)
Om du fortfarande är beroende av det föråldrade mssql drivrutinsnamnsbeteendet som skriver ? om platshållare, använd NewConnectorWithProcessQueryText istället för NewConnectorConfig när du bygger kopplingen.