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.

Le pilote ne résout les alias dans les tables suivantes qu’avec des chaînes de connexion au format ADO . Les chaînes de connexion au format URL et ODBC correspondent exactement aux noms des paramètres, à l’exception du casing (casing).

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’arrêt en quelques secondes pour l’échange de connexion. 0 n’applique aucun délai d’expiration à l’échange de connexion, mais la connexion réseau initiale est délimitée séparément par dial timeout. Je préfère les contextes Go pour les délais de connexion et de requête. Pour Azure SQL Database sans serveur avec l’auto-pause activée, la première connexion à une base de données mise en pause échoue avec l’erreur 40613 pendant que la base de données reprend. Ajoutez une logique de réessaisis plutôt qu’un délai d’attente plus long. Les bases de données reprennent généralement en moins d’une minute. Pour plus d’informations, voir Mise en pause automatique et reprise automatique.
dial timeout - 15 x protocol count Délai d’expiration de la composition réseau en quelques secondes. 0 applique le principe par défaut de 15 secondes par protocole enregistré plutôt que d’attendre indéfiniment.
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 Aliases 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. Une valeur de 0 applique le défaillance de 30 secondes par défaut plutôt que de se remettre au système d’exploitation.
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 multi subnet failover true Comportement de composition lorsque le DNS résout l’hôte à plusieurs adresses IP. Lorsque true DNS renvoie plusieurs adresses, le pilote compose tous les points de terminaison résolus en parallèle et utilise la première connexion réussie. Lorsque le DNS renvoie une seule adresse, le pilote la compose séquentiellement, ce true qui le rend sûr sur les cibles IP uniques. Gardez les paramètres par défaut pour les écouteurs de groupes de disponibilité, les instances de cluster de basculement et les écouteurs de groupes de basculement Azure SQL. Ce pilote est par true défaut pour la rétrocompatibilité ; les autres pilotes SQL de Microsoft utilisent par falsedéfaut .

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