Como encontrar a porta de execução do SQL Server?

94

Sim, eu li isto. Como encontrar a porta para o MS SQL Server 2008?

sem sorte.

telnet 1433

A conexão de retorno falhou, então devo especificar outra porta.

Tentei usar

netstat -abn

mas não vejo sqlservr.exe ou algo semelhante nesta lista.

Por que é tão difícil encontrar essa porta? : /

Keram
fonte
Você verificou se o serviço Sql Server está em execução?
Pilgerstorfer Franz

Respostas:

76

muito simples. anote o PID sqlsrvr.exe do taskmanager e execute este comando:

netstat -ano | findstr *PID*

ele mostrará as conexões TCP e UDP do seu servidor SQL (incluindo portas). O padrão é 1433 para TCP e 1434 para UDP

exemplo: insira a descrição da imagem aqui

mantas mileris
fonte
3
Isso funcionou para mim "ao contrário": precisava encontrar o número da porta (não padrão) da máquina remota à qual estava conectado no SSMS.
leqid
57

Este é o que funciona para mim:

SELECT DISTINCT 
    local_tcp_port 
FROM sys.dm_exec_connections 
WHERE local_tcp_port IS NOT NULL 
Stefan Steiger
fonte
39

Se você pode iniciar o Sql Server Configuration Manager> SQL Server Network Configuration> Your instance> TCP / IP> Properties

insira a descrição da imagem aqui

Abedurftig
fonte
8

Se você executou "netstat -a -b -n" (em um prompt de comando elevado) e não vê "sqlservr.exe", o serviço do SQL Server não está em execução ou a biblioteca de rede TCP / IP está Desativado.

Execute o SQL Server Configuration Manager (Iniciar | Todos os programas | Microsoft SQL Server 2008 | Ferramentas de configuração).

Navegue até os serviços do SQL Server. No painel direito, procure SQL Server (). Está parado? Se sim, comece.

Navegue até Configuração de rede do SQL Server (ou Configuração de rede do SQL Server (32 bits) conforme apropriado) e, em seguida, Protocolos para. No painel direito, procure "TCP / IP". Está desativado? Em caso afirmativo, habilite-o e reinicie o serviço SQL Server.

Observe que o ID da instância será MSSQLSERVER para a instância padrão.

Observe também que você não precisa habilitar a biblioteca de rede TCP / IP para conectar um cliente ao serviço. Os clientes também podem se conectar por meio da biblioteca de rede de Memória Compartilhada (se o cliente estiver na mesma máquina) ou da biblioteca de rede Pipes Nomeados.

Greenstone Walker
fonte
3

Talvez não esteja usando TCP / IP

Dê uma olhada no SQL Server Configuration Manager para ver quais protocolos ele está usando.

Podiluska
fonte
Configuração do SQL Native Client? TCP / IP está ativado. Mas a porta padrão é definida como 1433: /
keram
@keram Não - isso é para clientes. Você quer a utilidade de configuração do servidor.
podiluska
onde posso encontrar essa configuração?
keram
2

Em nossa empresa não tenho acesso ao servidor MSSQL, portanto não consigo acessar as tabelas do sistema.

O que funciona para mim é:

  1. capturar o tráfego de rede Wireshark(execute como administrador, selecione Interface de rede), ao abrir a conexão com o servidor.
  2. Encontre o endereço IP com ping
  3. filtrar com ip.dst == x.x.x.x

A porta é mostrada na coluna infono formatosrc.port -> dst.port

Fbehrens
fonte
2

Este é outro script que uso:

-- Find Database Port script by Jim Pierce  09/05/2018

USE [master]
GO

DECLARE @DynamicportNo NVARCHAR(10);
DECLARE @StaticportNo NVARCHAR(10);
DECLARE @ConnectionportNo INT;

-- Look at the port for the current connection
SELECT @ConnectionportNo = [local_tcp_port]
 FROM sys.dm_exec_connections
    WHERE session_id = @@spid;

-- Look for the port being used in the server's registry
EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
                        ,@key =
                         'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
                        ,@value_name = 'TcpDynamicPorts'
                        ,@value = @DynamicportNo OUTPUT

EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
                        ,@key =
                         'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
                        ,@value_name = 'TcpPort'
                        ,@value = @StaticportNo OUTPUT

SELECT [PortsUsedByThisConnection] = @ConnectionportNo
      ,[ServerStaticPortNumber] = @StaticportNo
      ,[ServerDynamicPortNumber] = @DynamicportNo
GO
Jim Pierce
fonte
1

Tente activar o protocolo por: Configuration Manager > Configuração de rede do servidor SQL > Protocolos para MSSQLSERVER > Propriedades de TCP / IP

baga
fonte
1

tente uma vez: -

USE master
DECLARE       @portNumber   NVARCHAR(10)
EXEC   xp_instance_regread
@rootkey    = 'HKEY_LOCAL_MACHINE',
@key        =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll',
@value_name = 'TcpDynamicPorts',
@value      = @portNumber OUTPUT
SELECT [Port Number] = @portNumber
GO
Krishna Dhakate
fonte
0

Programas do SQL Server 2000 | MS SQL Server | Utilitário de rede do cliente | Selecione TCP_IP e Propriedades

Programas do SQL Server 2005 | SQL Server | SQL Server Configuration Manager | Selecione Protocolos para MSSQLSERVER ou selecione Protocolos de cliente e clique com o botão direito em TCP / IP

Donna Collins
fonte
0
select * from sys.dm_tcp_listener_states 

Mais lá: https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-tcp-listener-states-transact-sql?view=sql-server -2017

Vladimir Bashutin
fonte
Elabore sua resposta.
Harsh Wardhan
Embora este link possa ajudar na sua resposta à pergunta, você pode melhorar esta resposta pegando partes vitais do link e colocando-as em sua resposta, isso garante que sua resposta ainda seja uma resposta se o link for alterado ou removido :)
WhatsThePoint
0

Outra opção pode ser ler o Registro do Windows. Usando o PowerShell, você pode fazer algo assim:

#Get SQL instance's Port number using Windows Registry:
$instName = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances[0]
$tcpPort = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instName\MSSQLServer\SuperSocketNetLib\Tcp").TcpPort
Write-Host The SQL Instance:  `"$instName`"  is listening on `"$tcpPort`"  "TcpPort."

insira a descrição da imagem aqui Certifique-se de executar este script PowerShell no Host Server (que hospeda sua instância do SQL / instalação do SQL Server), o que significa que você deve primeiro RDP no SQL Server / Box / VM e, em seguida, executar este código.

HTH

Eddie Kumar
fonte