SQL Server e Portas TCP/IP

SQL Server é um serviço que utiliza o protocolo TCP/IP para atender às requisições dos usuários. A comunicação utiliza o protocolo chamado Tabular Data Stream (TDS) e, por padrão, utiliza a porta TCP 1433 do servidor de banco de dados. Por exemplo, ao rodar o comando NETSTAT -NA, verificam-se várias conexões do cliente 157.54.178.31 com o servidor 157.54.178.42.

Proto Local Address Foreign Address State

TCP 157.54.178.42:1433 0.0.0.0:0 LISTENING

TCP 157.54.178.42:1433 157.54.178.31:1746 ESTABLISHED

TCP 157.54.178.42:1433 157.54.178.31:1748 ESTABLISHED

TCP 157.54.178.42:1433 157.54.178.31:1750 ESTABLISHED

O servidor pode ser configurado com porta fixa ou dinâmica. O recomendado é que essa porta seja fixa, pois facilita a configuração de um firewall (caso seja necessário). Quando o servidor possui mais de um SQL Server instalado ou utiliza uma portão diferente da 1433, então é necessário habilitar um serviço secundário denominado SQL Browser. Esse serviço fica escutando na porta UDP 1434 com o objetivo de fazer “broadcast” dos servidores SQL ativos.

Em ambientes que necessitam de maior segurança, o serviço do SQL Browser é desabilitado ou bloqueado por firewall. Dessa forma, a máquina cliente é incapaz de determinar em qual porta o SQL Server encontra-se ativo – e acaba utilizando a porta padrão 1433. Nesses casos, recomenda-se a criação de “Alias”, que possui um comportamento semelhante ao arquivo HOSTS.

Exemplo: Uma conexão com o servidor SERVXYZ na porta 12345 falha quando o SQL Browser está desabilitado, porque a máquina cliente procura estabelecer uma comunicação na porta padrão 1433. A solução é utilizar um “Alias” que realiza o mapeamento de “SERVXYZ” para “TCP:SERVXYZ,12345”.

 

Referência

INF: TCP Ports Needed for Communication to SQL Server Through a Firewall
https://support.microsoft.com/kb/287932

How do I open the firewall port for SQL Server on Windows Server 2008?
https://support.microsoft.com/kb/968872

How to: Configure a Server to Listen on a Specific TCP Port
https://msdn.microsoft.com/en-us/library/ms177440.aspx

SQL Server Browser Service
https://msdn.microsoft.com/en-us/library/ms181087.aspx

How to: Create a Server Alias for Use by a Client (SQL Server Configuration Manager)
https://msdn.microsoft.com/en-us/library/ms190445.aspx

Server Connectivity How-to Topics (Database Engine)
https://msdn.microsoft.com/en-us/library/ms190608.aspx

Client Configuration How-to Topics (Database Engine)
https://msdn.microsoft.com/en-us/library/ms187853.aspx