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. Für Azure SQL-Datenbank serverlos mit aktivierter automatischer Pause schlägt die erste Verbindung zu einer pausierten Datenbank mit dem Fehler 40613 ab, während die Datenbank wieder aufgenommen wird. Füge eine Logik für das Wiederholen statt einer längeren Auszeit hinzu. Datenbanken werden in der Regel in weniger als einer Minute wieder aufgenommen. Siehe Auto-Pause und Auto-Resume.
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 Aliase 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 multi subnet failover true Wählverhalten, wenn DNS den Host auf mehrere IP-Adressen auflöst. Wenn true und DNS mehrere Adressen zurückgibt, wählt der Treiber alle aufgelösten Endpunkte parallel und nutzt die erste erfolgreiche Verbindung. Wenn DNS eine einzelne Adresse zurückgibt, wählt der Treiber sie sequenziell, sodass true sie auf Einzel-IP-Zielen sicher ist. Behalten Sie den Standard für Verfügbarkeitsgruppen-Listener, Failover-Cluster-Instanzen und Azure SQL-Failover-Gruppen-Listener. Dieser Treiber setzt standardmäßig auf für true Abwärtskompatibilität; andere Microsoft SQL-Treiber setzen standardmäßig auf false.

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,false/optional , . 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.