go-mssqldb Verbindungsoptionen

Dieser Artikel bietet eine vollständige Referenz für alle vom Treiber go-mssqldb akzeptierten Verbindungsparameter. Für die Syntax des Verbindungszeichenfolge-Formats siehe Connection strings.

Allgemeine Parameter

Parameter Aliase Standard Description
user id user - SQL Server-Login-Name.
password - - Passwort für den SQL Server-Anmelder.
database - - Zieldatenbank.
connection timeout - 0 Login-Timeout in Sekunden. 0 wartet unbegrenzt. Bevorzuge Go-Kontexte für Verbindungs- und Abfrage-Timeouts.
dial timeout - 15 x protocol count Netzwerkwahl-Timeout in Sekunden. 0 wartet unbegrenzt. Der Treiber wird standardmäßig auf 15 Sekunden gemäß registriertem Protokoll eingestellt.
encrypt - false Verschlüsselungsmodus. Azure SQL erfordert immer Server-seitige Verschlüsselung. Siehe Verschlüsselung und Zertifikate.
app name - - Anwendungsname im Login-Eintrag gesendet.
authenticator - - Benutzerdefinierter Authenticator, der von externen Paketen wie azuread. registriert wird.

Server und Port

In ADO- und ODBC-Formaten sind Server und Port getrennte Parameter:

Parameter Standard Description
server localhost SQL Server-Hostname, optional einschließlich \instance.
port 1433 TCP-Portnummer.

Im URL-Format geben Sie den Host und Port direkt in der URL an: sqlserver://host:port.

Failover

Parameter Standard Description
failoverpartner - Failover-Partnerserver-Hostname.
failoverpartnerspn - Service Principal Name (SPN) für den Failover-Partner.
failoverport 1433 TCP-Port für den Failover-Partner.

Wenn der Hauptserver nicht erreichbar ist, versucht der Treiber, sich automatisch mit dem Failover-Partner zu verbinden.

Netzwerk und Auftritte

Parameter Standard Description
packet size 4096 TDS-Paketgröße in Bytes. Gültiger Bereich: 512-32767.
keepAlive 30 Überleben-Intervall in Sekunden. 0 verwendet standardmäßig das Betriebssystem.
TrustServerCertificate Ist abhängig von encrypt Wenn true, überspringt die Serverzertifikatsvalidierung. Die Standardeinstellung ist false , wann encrypt angegeben ist und true wann weggelassen encrypt wird. Ignoriert, wenn encrypt=strict. Nicht für die Produktion empfohlen.
multisubnetfailover - Aktivieren Sie Multi-Subnet-Failover für AlwaysOn-Verfügbarkeitsgruppen.

Anwendungsabsicht

Parameter Werte Description
ApplicationIntent ReadOnly, ReadWrite Gibt an, ob die Anwendung für Schreib-nur- oder Lese-Schreib-Operationen verbunden ist. Verwendet mit AlwaysOn-Nur-Lese-Routing.

Arbeitsstation und SPN

Parameter Standard Description
Workstation ID - Arbeitsstationsname, der im Anmeldeeintrag gesendet wurde.
ServerSPN - Service Principal Name für den SQL Server. Nur in Nicht-Standard-SPN-Konfigurationen erforderlich.

Protocol

Parameter Werte Description
protocol tcp, np, lpc, admin Transportprotokoll Siehe Protokolle.
pipe - Benannter Rohrpfad. Gilt nur, wenn protocol=np.

Immer Verschlüsselt

Parameter Standard Description
columnencryption Nichts Auf Always Encrypted eingestellt true . Siehe Always Encrypted.

Verschlüsselung und TLS

Parameter Standard Description
encrypt Siehe Gemeinsame Parameter strict(TDS 8,0), true/mandatory,/falseoptional , . disable
TrustServerCertificate Ist abhängig von encrypt Überspringe die Zertifikatsvalidierung, wenn true. Die Standardeinstellung ist false , wann encrypt angegeben ist und true wann weggelassen encrypt wird. Ignoriert, wenn encrypt=strict.
certificate Nichts Pfad zu einer PEM- oder DER-Zertifikatsdatei zur Zertifikatskette-Validierung.
serverCertificate Nichts Pfad zu einer PEM- oder DER-Zertifikatsdatei für den Byte-Level-Vergleich (v1.5.0 und später).
hostnameincertificate Nichts Überschreiben Sie den während der TLS-Zertifikatsvalidierung verwendeten Hostnamen.
tlsmin Nichts Minimale TLS-Version: 1.0, 1.1, 1.2, 1.3.

Für detaillierte Hinweise zur Verschlüsselung siehe Verschlüsselung und Zertifikate.

Log-Flags

Verwenden Sie den Parameter log , um die diagnostische Ausgabe zu steuern. Werte sind Bitmasken-Flags, und Sie können sie kombinieren, indem Sie die ganzzahligen Werte hinzufügen:

Value Description
1 Protokollfehler
2 Protokollmeldungen
4 Logreihen
8 SQL-Anweisungen protokollieren
16 Protokollparameter
32 Protokolltransaktionen
64 Log-Debug-Informationen
128 Log-Wiederholungen

Beispiel: Um Fehler und SQL-Anweisungen zu protokollieren, setzen log=9 Sie (1 + 8).

Weitere Informationen finden Sie unter Logging und Diagnostik.

Uniqueidentifier-Spalten

Der Treiber liest standardmäßig Spalten als rohe Byte-Arrays aus uniqueidentifier . Um einen standardisierten GUID-formatierten String zu erhalten, scannen Sie stattdessen in mssql.UniqueIdentifierstring .[]byte Der Treiber unterstützt keine automatische GUID-Umwandlung über Verbindungsparameter.

SessionInitSQL

SessionInitSQList kein Verbindungszeichenfolge-Parameter. Setze es über die NewConnectorConfig API:

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

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

connector := mssql.NewConnectorConfig(config)
connector.SessionInitSQL = "SET ANSI_NULLS ON"
db := sql.OpenDB(connector)

Die SQL-Anweisung wird unmittelbar nach jeder neuen Verbindung ausgeführt, bevor die Verbindung an den Anrufer zurückgegeben wird.