Opciones de conexión Go-MSSQLDB

Este artículo proporciona una referencia completa de todos los parámetros de conexión aceptados por el go-mssqldb controlador. Para la sintaxis del formato de cadena de conexión, véase Cadenas de conexión.

Parámetros comunes

Parámetro Aliases Predeterminado Descripción
user id user - Nombre de inicio de sesión de SQL Server.
password - - Contraseña para el inicio de sesión de SQL Server.
database - - Base de datos objetivo.
connection timeout - 0 Tiempo de espera de inicio de sesión en segundos. 0 espera indefinidamente. Prefiero contextos de Go para los tiempos de conexión y consultas.
dial timeout - 15 x protocol count Tiempo de espera de marcación de red en segundos. 0 espera indefinidamente. El conductor por defecto es de 15 segundos según el protocolo registrado.
encrypt - false Modo cifrado. Azure SQL siempre requiere cifrado del lado del servidor. Consulta Cifrado y certificados.
app name - - El nombre de la solicitud se envió en el registro de inicio de sesión.
authenticator - - Autenticador personalizado registrado por paquetes externos como azuread.

Servidor y puerto

En los formatos ADO y ODBC, el servidor y el puerto son parámetros separados:

Parámetro Predeterminado Descripción
server localhost Nombre de host de SQL Server, opcionalmente incluyendo \instance.
port 1433 Número de puerto TCP.

En formato URL, especifica el host y el puerto directamente en la URL: sqlserver://host:port.

Conmutación por error

Parámetro Predeterminado Descripción
failoverpartner - Nombre de host del servidor del socio de conmutación por conmutación.
failoverpartnerspn - Nombre principal de servicio (SPN) para el socio de conmutación por error.
failoverport 1433 Puerto TCP para el socio de conmutación por error.

Cuando el servidor principal no es alcanzable, el controlador intenta conectarse automáticamente al socio de conmutación por error.

Red y rendimiento

Parámetro Predeterminado Descripción
packet size 4096 Tamaño de paquete TDS en bytes. Rango válido: 512-32767.
keepAlive 30 Intervalo de mantener vivo en segundos. 0 usa el sistema operativo por defecto.
TrustServerCertificate Depende de encrypt Cuando true, salta la validación del certificado del servidor. El valor por defecto es false cuándo encrypt se especifica y true cuándo encrypt se omite. Se omite cuando encrypt=strict. No se recomienda para el entorno de producción.
multisubnetfailover - Habilitar la conmutación por error multi-subred para los Grupos de Disponibilidad AlwaysOn.

Intención de la aplicación

Parámetro Values Descripción
ApplicationIntent ReadOnly, ReadWrite Declara si la aplicación se conecta para operaciones de solo lectura o de lectura-escritura. Se usa con enrutamiento de solo lectura AlwaysOn.

Estación de trabajo y SPN

Parámetro Predeterminado Descripción
Workstation ID - El nombre de la estación de trabajo se envió en el registro de inicio de sesión.
ServerSPN - Nombre principal de servicio para el SQL Server. Solo se requiere en configuraciones SPN no predeterminadas.

Protocol

Parámetro Values Descripción
protocol tcp, np, , lpc, admin Protocolo de transporte. Consulta Protocolos.
pipe - Camino de tubería llamado. Solo se aplica cuando protocol=np.

Siempre Cifrado

Parámetro Predeterminado Descripción
columnencryption Ninguno Configura para true activar Siempre Cifrado. Ver Siempre Cifrado.

Cifrado y TLS

Parámetro Predeterminado Descripción
encrypt Véase Parámetros comunes strict(TDS 8.0), true/mandatory,/falseoptional , . disable
TrustServerCertificate Depende de encrypt Salta la validación de certificados cuando true. El valor por defecto es false cuándo encrypt se especifica y true cuándo encrypt se omite. Se omite cuando encrypt=strict.
certificate Ninguno Ruta hacia un archivo de certificado PEM o DER para la validación de la cadena de certificados.
serverCertificate Ninguno Ruta hacia un archivo de certificado PEM o DER para la comparación a nivel de bytes (v1.5.0 y posteriores).
hostnameincertificate Ninguno Anula el nombre de host utilizado durante la validación del certificado TLS.
tlsmin Ninguno Versión mínima TLS: 1.0, 1.1, 1.2, 1.3.

Para orientación detallada sobre cifrado, véase Cifrado y certificados.

Banderas de registro

Utiliza el log parámetro para controlar la salida de diagnóstico. Los valores son banderas de máscaras de bit, y puedes combinarlas sumando los valores enteros:

Value Descripción
1 Errores de registro
2 Mensajes de registro
4 Filas de logaritmía
8 Registrar sentencias SQL
16 Parámetros de registro
32 Transacciones de registro
64 Información de depuración de registros
128 Reintentos de logaritmía

Ejemplo: para registrar errores y sentencias SQL, se establece log=9 (1 + 8).

Para más información, consulte Registro y diagnóstico.

columnas uniqueidentifier

El controlador lee uniqueidentifier columnas como arrays de bytes en bruto por defecto. Para obtener una cadena estándar formateada por GUID, escanea en mssql.UniqueIdentifier lugar de string .[]byte El controlador no soporta conversión automática de GUID a través de parámetros de conexión.

SessionInitSQL

SessionInitSQLno es un parámetro de cadena de conexión. Configurarlo a través de la 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)

La instrucción SQL se ejecuta inmediatamente después de que se establezca cada nueva conexión, antes de que la conexión se devuelva al llamante.