Olá pessoal,
Bom dia!

Neste post vou mostrar como identificar a porta utilizada pela instância do SQL Server. Como vocês devem saber, a porta padrão para conexões TCP/IP é a 1433 e para conexões UDP é a 1434. Entretanto, se você possui mais de uma instalação no mesmo servidor, será possível utilizar essas portas apenas para uma das instâncias, fazendo com que seja interessante identificarmos essa informação.

Identificando a porta lendo os logs de erro do SQL Server

O log de erro do SQL Server é um ótimo lugar para saber o que acontece com a instância do SQL Server. Utilizando a stored procedure estendida xp_readerrorlog, podemos facilmente obter essa informação.

EXEC master.dbo.xp_readerrorlog 0, 1, N'Server is listening on', 'ipv', NULL, NULL, N'asc'

Como identificar a porta utilizada pelo SQL Server - 1
Como identificar a porta utilizada pelo SQL Server - 1

Identificando a porta por views de catálogo (DMV)

Uma outra forma rápida de obter a informação é consultando views de catálogo do sistema (DMV’s), conforme exemplos abaixo:

SELECT TOP 1 local_tcp_port 
FROM sys.dm_exec_connections
WHERE local_tcp_port IS NOT NULL

SQL Server - Identificar a porta com DMV dm_exec_connections
SQL Server - Identificar a porta com DMV dm_exec_connections

Utilizando a DMV sys.dm_server_registry (Somente a partir do SQL Server 2008 R2):

SELECT value_data
FROM sys.dm_server_registry
WHERE registry_key LIKE '%IPALL%' 
AND value_name LIKE 'Tcp%Port%'
AND NULLIF(value_data, '') IS NOT NULL

Identificando a porta via registro do Windows

Uma alternativa tão prática quanto a primeira, seria realizar uma Query T-SQL consultando os dados do registro do Windows através da stored procedure estendida xp_regread.

DECLARE @Instancia NVARCHAR(50)
DECLARE @Porta VARCHAR(100)
DECLARE @RegKey_Instancia NVARCHAR(500)
DECLARE @RegKey NVARCHAR(500)

SET @Instancia = CONVERT(NVARCHAR, ISNULL(SERVERPROPERTY('INSTANCENAME'), 'MSSQLSERVER'))


-- SQL Server 2000
IF ( SELECT CONVERT( VARCHAR (1), (SERVERPROPERTY ('ProductVersion'))) ) = 8
BEGIN
    
    IF (@Instancia = 'MSSQLSERVER')
        SET @RegKey = 'SOFTWARE\Microsoft\' + @Instancia + '\MSSQLServer\SuperSocketNetLib\TCP\'
    ELSE
        SET @RegKey = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @Instancia + '\MSSQLServer\SuperSocketNetLib\TCP\'
    
    EXEC master.dbo.xp_regread
        @rootkey = 'HKEY_LOCAL_MACHINE',
        @key = @RegKey,
        @value_name = 'TcpPort',
        @value = @Porta OUTPUT
 
    SELECT @@SERVERNAME AS Servidor, @Instancia AS Instancia, @Porta AS Porta

END


-- SQL Server 2005 ou superiores
IF ( SELECT CONVERT( VARCHAR (1), (SERVERPROPERTY ('ProductVersion'))) ) <> 8
BEGIN

    SET @RegKey_Instancia = 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL'

    EXEC master.dbo.xp_regread
        @rootkey = 'HKEY_LOCAL_MACHINE',
        @key = @RegKey_Instancia,
        @value_name = @Instancia,
        @value = @Porta OUTPUT

    SET @RegKey = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @Porta + '\MSSQLServer\SuperSocketNetLib\TCP\IPAll'

    EXEC master.dbo.xp_regread
        @rootkey = 'HKEY_LOCAL_MACHINE',
        @key = @RegKey,
        @value_name = 'TcpPort',
        @value = @Porta OUTPUT
 
    SELECT @@SERVERNAME AS Servidor, @Instancia AS Instancia, @Porta AS Porta

END

Como identificar a porta utilizada pelo SQL Server - 4
Como identificar a porta utilizada pelo SQL Server - 4

Identificando a porta com o SQL Server Configuration Manager

Uma outra alternativa para isso, caso você tenha acesso ao servidor, é utilizando o SQL Server Configuration Manager.
Para abrir esse utilitário, basta utilizar o Menu Iniciar > Programas > Microsoft SQL Server 2008 R2 (Ou a sua versão) > Configuration Tools e abrir o aplicativo SQL Server Configuration Manager.

Uma alternativa mais rápida é abrir o menu Executar, e digitar SQLServerManager10.msc (o 10 representa a versão do seu SQL Server)

Como identificar a porta utilizada pelo SQL Server - 2
Como identificar a porta utilizada pelo SQL Server - 2

Como identificar a porta utilizada pelo SQL Server - 3
Como identificar a porta utilizada pelo SQL Server - 3

Identificando a porta com o Visualizador de Eventos do Servidor

Por fim, podemos verificar a porta utilizada pela nossa instância consultando o log de eventos do tipo Application.

Para abrir esse aplicativo, você deve ir em: Painel de Controle > Ferramentas Administrativas > Visualizador de Eventos ou então abrir o menu Executar e digitar: eventvwr.msc

No painel da esquerda, expanda o menu “Log do Windows” e depois marque a opção “Aplicativo”. No painel da direita, clique na opção “Filtrar log atual” e filtre pelo Id do evento 26022

Como identificar a porta utilizada pelo SQL Server - 5
Como identificar a porta utilizada pelo SQL Server - 5

Como identificar a porta utilizada pelo SQL Server - 7
Como identificar a porta utilizada pelo SQL Server - 7

Como identificar a porta utilizada pelo SQL Server - 6
Como identificar a porta utilizada pelo SQL Server - 6

É isso aí, pessoal!
Até a próxima!