Opções de conexão go-mssqldb

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

Parâmetros comuns

Parâmetro Aliases Padrão Description
user id user - Nome de login do SQL Server.
password - - Senha para o login do SQL Server.
database - - Banco de dados de alvos.
connection timeout - 0 Tempo limite de login em segundos. 0 espera indefinidamente. Prefira contextos do Go para conexões e tempos de consulta. Para o Banco de Dados SQL do Azure serverless com autopausa ativada, a primeira conexão com um banco de dados pausado falha com o erro 40613 enquanto o banco de dados recomeça. Adicione lógica de retentativa em vez de um tempo limite mais longo. Os bancos de dados geralmente retomam em menos de um minuto. Veja Autopausa e auto-retomada.
dial timeout - 15 x protocol count O timeout da discagem de rede em segundos. 0 espera indefinidamente. O motorista usa por padrão 15 segundos conforme protocolo registrado.
encrypt - false Modo de criptografia. SQL do Azure sempre exige criptografia do lado do servidor. Veja Criptografia e certificados.
app name - - Nome da aplicação enviado no registro de login.
authenticator - - Autenticador personalizado registrado 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 Padrão Description
server localhost Nome do host do SQL Server, opcionalmente incluindo \instance.
port 1433 Número da porta TCP.

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

Failover

Parâmetro Padrã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 se conectar automaticamente ao parceiro de failover.

Rede e desempenho

Parâmetro Aliases Padrão Description
packet size - 4096 Tamanho do pacote TDS em bytes. Faixa válida: 512-32767.
keepAlive - 30 Intervalo de mantenção viva em segundos. 0 usa o padrão do sistema operacional.
TrustServerCertificate - Depende de encrypt Quando true, pule 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 multi subnet failover true Comportamento de discagem quando o DNS resolve o host para múltiplos endereços IP. Quando true um DNS retorna múltiplos endereços, o driver disca todos os endpoints resolvidos em paralelo e usa a primeira conexão bem-sucedida. Quando o DNS retorna um único endereço, o driver disca sequencialmente, então true é seguro em alvos de IP único. Mantenha o padrão para ouvintes de grupos de disponibilidade, instâncias de cluster de failover e ouvintes de grupos de failover do SQL do Azure. Esse driver é true padrão para compatibilidade retroativa; outros drivers SQL da Microsoft usam por falsepadrão .

Intenção do aplicativo

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

Estação de trabalho e SPN

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

Protocol

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

Sempre Criptografado

Parâmetro Padrão Description
columnencryption None Defina para true ativar o Sempre Criptografado. Veja Sempre Criptografado.

Criptografia e TLS

Parâmetro Padrão Description
encrypt Veja Parâmetros comuns strict(TDS 8.0), true/mandatory,false/optional , . disable
TrustServerCertificate Depende de encrypt Pule 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 arquivo de certificado PEM ou DER para validação da cadeia de certificados.
serverCertificate None Caminho para um arquivo de certificado PEM ou DER para comparação em 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 criptografia, veja Criptografia e certificados.

Bandeiras de registro

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

Value Description
1 Erros de log
2 Mensagens de Log
4 Linhas de logarítmica
8 Instruções de log SQL
16 Parâmetros de registro
32 Transações de log
64 Informações de depuração de log
128 Retentativas de logarígrafo

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

Para mais informações, veja Registro e diagnóstico.

colunas uniqueidentifier.

O driver lê uniqueidentifier colunas como arrays brutos de bytes por padrão. Para obter uma string formatada por GUID, escaneie 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 conexão.

SessionInitSQL

SessionInitSQLnão é um parâmetro de cadeia de conexão. Defina isso pela 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 é executada imediatamente após cada nova conexão ser estabelecida, antes que a conexão seja devolvida ao chamador.