Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O go-mssqldb driver suporta múltiplos protocolos de transporte para ligação ao SQL Server. Este artigo descreve cada protocolo e como o configurar.
Parâmetro do protocolo
Defina o protocol parâmetro de ligação para especificar o transporte:
| Value | Protocolo | Description |
|---|---|---|
tcp |
TCP/IP | Protocolo padrão. Funciona em todas as plataformas. |
np |
Canalizações nomeadas | Comunicação entre processos do Windows. Funciona no Windows e Linux (com SMB). |
lpc |
Memória partilhada | Ligações locais apenas no Windows. |
admin |
DAC (TCP) | Ligação Dedicada ao Administrador. Liga-se ao endpoint do DAC. |
Se não especificar um protocol, o driver usa TCP.
TCP/IP
O TCP é o protocolo padrão e mais comum. Especifique o host e a porta na cadeia de ligação:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025
Ou explicitamente:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&protocol=tcp
Formato do prefixo do servidor
Também pode especificar o protocolo como prefixo no nome do servidor (formatos ADO/ODBC):
server=tcp:<server>,1433;user id=<user>;password=<password>;database=AdventureWorks2025
Note
No formato de prefixo ADO, a porta é separada por uma vírgula, não por dois pontos.
Canalizações nomeadas
Os canos nomeados usam o np protocolo. Especifique o caminho do tubo com o pipe parâmetro:
sqlserver://<user>:<password>@<server>?database=AdventureWorks2025&protocol=np&pipe=\sql\query
Ou usar o formato do prefixo do servidor:
server=np:<server>\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025
O nome padrão do pipe corresponde \sql\query à instância padrão.
As versões atuais dos drivers suportam ligações de pipe nomeadas no Windows para Arm64, além de Windows e Linux para ambientes x86-64 que expõem o pipeline via SMB.
Nomes de pipes de instância nomeados
Para instâncias nomeadas, o caminho do tubo é tipicamente \MSSQL$INSTANCENAME\sql\query. Se souberes o caminho do tubo, especifica-o diretamente. Caso contrário, omita o pipe parâmetro e deixa o SQL Server Browser resolvê-lo.
Memória partilhada
A memória partilhada (lpc) fornece a comunicação mais rápida para ligações locais no Windows. Funciona apenas quando o cliente e o servidor estão na mesma máquina:
sqlserver://<user>:<password>@localhost?database=AdventureWorks2025&protocol=lpc
Ou com o prefixo do servidor:
server=lpc:.\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025
Note
A memória partilhada não está disponível no Linux ou macOS.
Ligação Dedicada ao Administrador (DAC)
O DAC fornece uma ligação de diagnóstico especial ao SQL Server quando o servidor não responde. O DAC ouve numa porta dedicada (padrão: 1434 para instâncias por defeito):
sqlserver://<user>:<password>@<server>?database=AdventureWorks2025&protocol=admin
Ou com o prefixo do servidor:
server=admin:<server>;user id=<user>;password=<password>;database=AdventureWorks2025
Warning
O SQL Server permite apenas uma ligação DAC de cada vez. Usa o DAC apenas para diagnósticos de emergência.
Navegador do SQL Server
Quando o driver se liga a uma instância nomeada sem uma porta especificada, contacta o serviço SQL Server Browser (na porta UDP 1434) para resolver a instância para uma porta TCP. Certifique-se de que o serviço SQL Server Browser está a correr na máquina de destino.
sqlserver://<user>:<password>@<server>\myinstance?database=AdventureWorks2025
Orientação para seleção de protocolo
| Scenario | Protocolo recomendado |
|---|---|
| Ligações remotas | tcp |
| Ligações locais no Windows |
lpc (mais rápido) ou tcp |
| Aplicações multiplataforma | tcp |
| Diagnóstico de emergência | admin |
| Aplicações legadas que requerem pipelines nomeados | np |