Maneira fácil de verificar a conectividade com o SQL Server a partir do cliente


18

Para fins de solução de problemas, eu gostaria de poder verificar se um cliente pode se conectar a uma instância do SQL Server, independentemente do aplicativo que possivelmente não pode se conectar ao SQL Server.

Existe uma maneira fácil (isso significa, não ter que instalar software de terceiros) para fazer isso usando as ferramentas padrão do sistema Windows? Talvez usando scripts ou aplicativos de rede?


no meu notebook, posso criar uma conexão odls do sqlserver e testar o acesso ao sqlserver. Mas não sei se o driver sqlserver odc pode ser encontrado em todos os clientes configurados para acessar o sqlserver. mas se pudesse ser encontrado, este seria o próximo teste depois de verificar a acessibilidade do sqlserver prot do servidor com telnet.
miracle173

Respostas:


15

Se o servidor estiver usando TCP / IP, a maneira mais simples é apenas telnetar para a porta do SQL Server e verificar se ele se conecta. Por padrão, essa é a porta 1433, portanto, isso deve funcionar:

telnet servername 1433

Isso provavelmente será apropriado na maioria dos casos.

Se estiver usando uma porta diferente ou dinâmica (comum com uma instância nomeada), será necessário determinar em qual porta ela está ouvindo no momento. Verifique o gerenciador de configuração do SQL Server para ver se é uma porta específica ou dinâmica. Se estiver usando portas dinâmicas, desde que você não tenha várias instâncias no servidor, netstat -abnprovavelmente é a maneira mais simples de encontrar o que está usando. Caso contrário, procure no log de eventos do Windows ou no log de erros do SQL Server uma mensagem indicando qual porta está sendo usada pela instância.

Se o SQL Server estiver usando pipes nomeados, acredito que, se você puder acessar compartilhamentos na máquina, terá conectividade de rede adequada. Este artigo diz que você pode ir além e tentar se conectar ao compartilhamento IPC $:

http://msdn.microsoft.com/en-us/library/aa275787%28v=sql.80%29.aspx

net use \\servername\IPC$

Isso foi escrito para o SQL Server 2000, mas não imagino que esse aspecto tenha mudado muito, se é que realmente.


2
Isso não está vendo se um cliente pode "se conectar a uma instância do SQL Server". Isso é apenas um teste para ver se uma porta está escutando.
Thomas Stringer

4
... que está verificando se um sistema cliente "pode ​​se conectar a uma instância do SQL Server, independente do aplicativo que possivelmente não pode se conectar ao SQL Server". Qualquer coisa além da conectividade de rede está lidando com problemas de aplicativos.
db2

22

Um método de teste simples para conectividade SQL é criar um arquivo de texto vazio, com uma extensão de arquivo "UDL". Você pode criá-lo no bloco de notas. E pode ter qualquer nome. Eu uso "TestSQL.UDL"

Salve-o na área de trabalho de um PC com Windows e clique duas vezes nele.

Uma caixa de diálogo "Data Link Properties" será exibida, onde você pode inserir o endereço IP do servidor SQL e também um nome de usuário e senha SQL.

Clique no botão "Testar conexão" para ver se você pode se conectar.

insira a descrição da imagem aqui


Não esqueça de clicar na guia Provider e selecione o direito provedor de OLE DB: "Microsoft OLE DB para SQL Server"
DaveB

Dave, seja bem-vindo e boa resposta. Você pode editar sua postagem (canto inferior esquerdo) para adicionar essas informações adicionais. Em seguida, exclua seu comentário.
Michael Green

Essa é realmente uma ótima resposta, pois funciona em praticamente qualquer servidor, independentemente do que ou do que não está instalado. Tudo que você precisa é o bloco de notas. Obrigado por esta ótima resposta, realmente me ajudou a convencer meu cliente de que a conectividade SQL estava funcionando.
22417 Roblick #

8

Desde que você tenha a Microsoft.SqlServer.Smomontagem em seu GAC na máquina local, isso pode ser feito facilmente com o PowerShell:

[Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null

$server = New-Object Microsoft.SqlServer.Management.Smo.Server("YourSqlServerName")

# do a simple operation to see if you can get data
Try {
    $server.Version | Out-Null
    Write-Host "SQL Server connection successful!!!"
}
Catch [System.Exception] {
    Write-Host "Error connecting to SQL Server..."
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.