Options de connexion go-mssqldb

Cet article fournit une référence complète pour tous les paramètres de connexion acceptés par le go-mssqldb pilote. Pour la syntaxe du format chaîne de connexion, voir Chaînes de connexion.

Paramètres courants

Paramètre Aliases Par défaut Description
user id user - Nom de connexion SQL Server.
password - - Mot de passe pour la connexion SQL Server.
database - - Base de données cible.
connection timeout - 0 Délai d’attente de connexion en quelques secondes. 0 attend indéfiniment. Je préfère les contextes Go pour les délais de connexion et de requête.
dial timeout - 15 x protocol count Délai d’expiration de la composition réseau en quelques secondes. 0 attend indéfiniment. Le conducteur est par défaut à 15 secondes selon le protocole enregistré.
encrypt - false Mode chiffrement. Azure SQL nécessite toujours un chiffrement côté serveur. Voir Chiffrement et certificats.
app name - - Nom de la demande envoyé dans l’enregistrement de connexion.
authenticator - - Authentificateur personnalisé enregistré par des packages externes tels que azuread.

Serveur et port

Aux formats ADO et ODBC, le serveur et le port sont des paramètres distincts :

Paramètre Par défaut Description
server localhost Nom d’hôte SQL Server, incluant \instanceoptionnellement .
port 1433 Numéro de port TCP.

Au format URL, spécifiez l’hôte et le port directement dans l’URL : sqlserver://host:port.

Failover

Paramètre Par défaut Description
failoverpartner - Nom d’hôte du serveur partenaire de basculement.
failoverpartnerspn - Nom principal de service (SPN) pour le partenaire de basculement.
failoverport 1433 Port TCP pour le partenaire de basculement.

Lorsque le serveur principal est injoignable, le pilote tente de se connecter automatiquement au partenaire de basculement.

Réseau et performances

Paramètre Par défaut Description
packet size 4096 Taille du paquet TDS en octets. Plage valide : 512-32767.
keepAlive 30 Intervalle de maintien en vie en quelques secondes. 0 utilise le système d’exploitation par défaut.
TrustServerCertificate Dépend de encrypt Lorsque true, saute la validation des certificats serveur. Le principe par défaut est false lorsque encrypt est spécifié et true quand encrypt est omis. Ignoré si encrypt=strict. Non recommandé pour la production.
multisubnetfailover - Activez le basculement multi-sous-réseaux pour les groupes de disponibilité AlwaysOn.

Intention de l’application

Paramètre Values Description
ApplicationIntent ReadOnly, ReadWrite Déclare si l’application se connecte pour des opérations en lecture seule ou en lecture-écriture. Utilisé avec le routage en lecture seule AlwaysOn.

Station de travail et SPN

Paramètre Par défaut Description
Workstation ID - Le nom de la station de travail a été envoyé dans l’enregistrement de connexion.
ServerSPN - Nom principal de service pour le SQL Server. Obligatoire uniquement dans les configurations SPN non par défaut.

Protocole

Paramètre Values Description
protocol tcp, np, lpc, admin Protocole de transport Voir protocoles.
pipe - Un chemin de tuyau nommé. Ne s’applique que lorsque protocol=np.

Toujours Chiffré

Paramètre Par défaut Description
columnencryption None Réglez sur true Toujours Chiffré. Voir toujours chiffré.

Chiffrement et TLS

Paramètre Par défaut Description
encrypt Voir Paramètres communs strict(TDS 8.0), true/mandatory,/falseoptional , . disable
TrustServerCertificate Dépend de encrypt Sauter la validation des certificats lorsque true. Le principe par défaut est false lorsque encrypt est spécifié et true quand encrypt est omis. Ignoré si encrypt=strict.
certificate None Chemin vers un fichier de certificat PEM ou DER pour la validation de la chaîne de certificats.
serverCertificate None Chemin vers un fichier de certificat PEM ou DER pour la comparaison au niveau d’octets (v1.5.0 et versions ultérieures).
hostnameincertificate None Suppliez le nom d’hôte utilisé lors de la validation du certificat TLS.
tlsmin None Version TLS minimale : 1.0, 1.1, 1.2, 1.3.

Pour des conseils détaillés sur le chiffrement, voir Chiffrement et certificats.

Drapeaux de journal

Utilisez ce log paramètre pour contrôler la sortie diagnostique. Les valeurs sont des drapeaux bitmask, et vous pouvez les combiner en ajoutant les valeurs entières :

Valeur Description
1 Erreurs de journalisation
2 Messages des journaux
4 Lignes de dialogisme
8 Journaliser les instructions SQL
16 Journaliser des paramètres
32 Transactions de journal
64 Informations de débogage des journaux
128 Essais de logarisme

Exemple : pour enregistrer les erreurs et les instructions SQL, posez log=9 (1 + 8).

Pour plus d’informations, voir Journalisation et diagnostic.

colonnes uniqueidentifiable

Le pilote lit uniqueidentifier par défaut les colonnes sous forme de tableaux d’octets bruts. Pour obtenir une chaîne standard formatée par GUID, scannez en mssql.UniqueIdentifier lieu de string ou []byte. Le pilote ne prend pas en charge la conversion automatique du GUID via les paramètres de connexion.

SessionInitSQL

SessionInitSQLn'est pas un paramètre de chaîne de connexion. Configurez-le via 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’instruction SQL s’exécute immédiatement après l’établissement de chaque nouvelle connexion, avant que la connexion ne soit renvoyée à l’appelant.