Opzioni di connessione go-mssqldb

Questo articolo fornisce un riferimento completo per tutti i parametri di connessione accettati dal go-mssqldb driver. Per la sintassi del formato stringa di connessione, vedi Connection strings.

Parametri comuni

Parametro Aliases Predefinito Descrizione
user id user - Nome di accesso SQL Server.
password - - Password per l'accesso SQL Server.
database - - Database bersaglio.
connection timeout - 0 Timeout per accedere in pochi secondi. 0 aspetta indefinitamente. Preferisci i contesti Go per timeout di connessione e query.
dial timeout - 15 x protocol count Timeout della chiamata di rete in pochi secondi. 0 aspetta indefinitamente. Il driver è predefinito a 15 secondi secondo il protocollo registrato.
encrypt - false Modalità crittografia. Azure SQL richiede sempre la crittografia lato server. Vedi Crittografia e certificati.
app name - - Nome della domanda inviato nel record di accesso.
authenticator - - Autenticatore personalizzato registrato da pacchetti esterni come azuread.

Server e porting

Nei formati ADO e ODBC, server e porta sono parametri separati:

Parametro Predefinito Descrizione
server localhost Nome host SQL Server, opzionalmente incluso \instance.
port 1433 Numero di porta TCP.

Nel formato URL, specifica l'host e la porta direttamente nell'URL: sqlserver://host:port.

Failover

Parametro Predefinito Descrizione
failoverpartner - Nome host del server partner di failover.
failoverpartnerspn - Nome principale del servizio (SPN) per il partner di failover.
failoverport 1433 Porta TCP per il partner di failover.

Quando il server principale non è raggiungibile, il driver tenta automaticamente di connettersi al partner di failover.

Rete e prestazioni

Parametro Predefinito Descrizione
packet size 4096 Dimensione del pacchetto TDS in byte. Intervallo valido: 512-32767.
keepAlive 30 Intervallo di keep alive in pochi secondi. 0 usa il sistema operativo predefinito.
TrustServerCertificate Dipende da encrypt Quando true, salta la validazione del certificato server. Il predefinito è false quando encrypt è specificato e true quando encrypt è omesso. Viene ignorato quando encrypt=strict. Non consigliato per la produzione.
multisubnetfailover - Abilita il failover multi-subnet per i gruppi di disponibilità AlwaysOn.

Finalità dell'applicazione

Parametro Values Descrizione
ApplicationIntent ReadOnly, ReadWrite Dichiara se l'applicazione si connette per operazioni di sola lettura o di lettura-scrittura. Usato con il routing di sola lettura AlwaysOn.

Workstation e SPN

Parametro Predefinito Descrizione
Workstation ID - Il nome della postazione di lavoro è stato inviato nel record di accesso.
ServerSPN - Nome principale del servizio per SQL Server. Richiesto solo nelle configurazioni SPN non predefinite.

Protocol

Parametro Values Descrizione
protocol tcp, np, lpcadmin Protocollo di trasporto. Vedi Protocolli.
pipe - Chiamato pipe path. Si applica solo quando protocol=np.

Sempre Crittografato

Parametro Predefinito Descrizione
columnencryption None Imposta su true per abilitare Sempre Criptato. Vedi sempre criptato.

Crittografia e TLS

Parametro Predefinito Descrizione
encrypt Vedi Parametri comuni strict(TDS 8.0), true/mandatory,/falseoptional , . disable
TrustServerCertificate Dipende da encrypt Saltare la validazione dei certificati quando true. Il predefinito è false quando encrypt è specificato e true quando encrypt è omesso. Viene ignorato quando encrypt=strict.
certificate None Percorso verso un file di certificato PEM o DER per la validazione della catena di certificati.
serverCertificate None Percorso verso un file di certificato PEM o DER per il confronto a livello di byte (v1.5.0 e successive).
hostnameincertificate None Sovrascrivi il nome host utilizzato durante la validazione del certificato TLS.
tlsmin None Versione minima TLS: 1.0, 1.1, 1.2, 1.3.

Per indicazioni dettagliate sulla crittografia, vedi Crittografia e certificati.

Flag di registro

Usa il parametro per controllare l'output log diagnostico. I valori sono flag bitmask e puoi combinarli sommando i valori interi:

Valore Descrizione
1 Errori di log
2 Messaggi di log
4 Righe di troncchi
8 Registrare le istruzioni SQL
16 Parametri del log
32 Transazioni di log
64 Informazioni di debug dei log
128 Tentativi di log

Esempio: per registrare errori e istruzioni SQL, impostare log=9 (1 + 8).

Per maggiori informazioni, vedi Registrazione e diagnostica.

colonne uniidentifier

Il driver legge uniqueidentifier di default le colonne come array di byte grezzi. Per ottenere una stringa standard formattata GUID, scansiona in mssql.UniqueIdentifier invece di string o []byte. Il driver non supporta la conversione automatica del GUID tramite i parametri di connessione.

SessionInitSQL

SessionInitSQLnon è un parametro di stringa di connessione. Impostalo tramite l'API NewConnectorConfig :

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)

L'istruzione SQL viene eseguita immediatamente dopo ogni nuova connessione, prima che la connessione venga restituita al chiamante.