Opções de ligação Go-MSSQLDB

Este artigo fornece uma referência completa para todos os parâmetros de ligação aceites pelo go-mssqldb driver. Para a sintaxe do formato cadeia de ligação, veja Connection strings.

Parâmetros comuns

Parâmetro Aliases Predefinição Description
user id user - Nome de login do SQL Server.
password - - Palavra-passe para o login do SQL Server.
database - - Base de dados de alvos.
connection timeout - 0 Tempo limite de login em segundos. 0 espera indefinidamente. Prefiro contextos Go para os tempos de ligação e consultas.
dial timeout - 15 x protocol count O timeout da discagem de rede em segundos. 0 espera indefinidamente. O condutor utiliza por defeito 15 segundos conforme o protocolo registado.
encrypt - false Modo de encriptação. O SQL do Azure requer sempre encriptação do lado do servidor. Veja Encriptação e certificados.
app name - - Nome da candidatura enviado no registo de login.
authenticator - - Autenticador personalizado registado por pacotes externos como azuread.

Servidor e port

Nos formatos ADO e ODBC, o servidor e a porta são parâmetros separados:

Parâmetro Predefinição Description
server localhost Nome do host do SQL Server, opcionalmente incluindo \instance.
port 1433 Número de porta TCP.

No formato URL, especifique o host e a porta diretamente na URL: sqlserver://host:port.

Failover

Parâmetro Predefinição Description
failoverpartner - Nome do servidor parceiro de failover.
failoverpartnerspn - Nome do Principal de Serviço (SPN) para o parceiro de failover.
failoverport 1433 Porta TCP para o parceiro de failover.

Quando o servidor principal está inacessível, o driver tenta ligar-se automaticamente ao parceiro de failover.

Rede e desempenho

Parâmetro Predefinição Description
packet size 4096 Tamanho do pacote TDS em bytes. Intervalo válido: 512-32767.
keepAlive 30 Intervalo para manter a vida em segundos. 0 usa o sistema operativo por defeito.
TrustServerCertificate Depende de encrypt Quando true, salta a validação do certificado do servidor. O padrão é false quando encrypt é especificado e true quando encrypt é omitido. Ignorado quando encrypt=strict. Não recomendado para produção.
multisubnetfailover - Ative o failover multi-sub-redes para os Grupos de Disponibilidade AlwaysOn.

Intenção do aplicativo

Parâmetro Values Description
ApplicationIntent ReadOnly, ReadWrite Declara se a aplicação se liga para operações de apenas leitura ou de leitura-escrita. Usado com o encaminhamento apenas leitura AlwaysOn.

Estação de trabalho e SPN

Parâmetro Predefinição Description
Workstation ID - Nome da estação de trabalho enviado no registo de login.
ServerSPN - Nome principal do serviço para o SQL Server. Exigido apenas em configurações SPN não padrão.

Protocolo

Parâmetro Values Description
protocol tcp, np, lpc, admin Protocolo de transporte. Ver Protocolos.
pipe - Chamado caminho de cano. Só se aplica quando protocol=np.

Sempre criptografado

Parâmetro Predefinição Description
columnencryption None Definir para true ativar o Sempre Encriptado. Ver Sempre Encriptado.

Encriptação e TLS

Parâmetro Predefinição Description
encrypt Ver Parâmetros comuns strict(TDS 8.0), true/mandatory,/falseoptional , . disable
TrustServerCertificate Depende de encrypt Saltar a validação de certificados quando true. O padrão é false quando encrypt é especificado e true quando encrypt é omitido. Ignorado quando encrypt=strict.
certificate None Caminho para um ficheiro de certificado PEM ou DER para validação da cadeia de certificados.
serverCertificate None Caminho para um ficheiro de certificado PEM ou DER para comparação ao nível de bytes (v1.5.0 e posteriores).
hostnameincertificate None Substitua o nome do host usado durante a validação do certificado TLS.
tlsmin None Versão mínima TLS: 1.0, 1.1, 1.2, 1.3.

Para orientações detalhadas sobre encriptação, consulte Encriptação e certificados.

Bandeiras de registo

Use o log parâmetro para controlar a saída de diagnóstico. Os valores são flags bitmask, e pode combiná-los somando os valores inteiros:

Value Description
1 Erros de log
2 Registrar mensagens
4 Linhas logaritméticas
8 Registar instruções SQL
16 Parâmetros de log
32 Transações de registo
64 Informação de depuração de logs
128 Retentativas de registo

Exemplo: para registar erros e instruções SQL, definir log=9 (1 + 8).

Para mais informações, consulte Registo e diagnóstico.

colunas de identificador único

O driver lê uniqueidentifier colunas como arrays brutos de bytes por defeito. Para obter uma cadeia padrão formatada por GUID, varreça em mssql.UniqueIdentifier vez de string ou []byte. O driver não suporta conversão automática de GUID através dos parâmetros de ligação.

SessionInitSQL

SessionInitSQLnão é um parâmetro de cadeia de ligação. Defina através da 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)

A instrução SQL executa-se imediatamente após cada nova ligação ser estabelecida, antes de a ligação ser devolvida ao chamador.