Pré-requisitos recomendados e lista de verificação para solucionar problemas de conectividade do SQL Server
Artigo
08/04/2025
Aplica-se a: SQL Server Número original do KB: 4009936
Pré-requisitos recomendados
Para solucionar problemas de conectividade com eficiência, reúna as seguintes informações:
O texto da mensagem de erro e os códigos de erro. Verifique se o erro é intermitente (ocorre apenas às vezes) ou consistente (ocorre o tempo todo).
Logs de eventos de aplicativos e sistemas do SQL Server e de sistemas cliente. Esses logs podem ajudar a verificar se há algum problema em todo o sistema ocorrendo no SQL Server.
Se as conexões estiverem falhando de um aplicativo, colete as cadeias de conexão do aplicativo. Essas cadeias de caracteres normalmente são encontradas em arquivos Web.config para aplicativos ASP.NET.
Colete e examine os logs de erros do SQL Server em busca de outras mensagens de erro e exceções.
Se você tiver acesso de administrador ao computador do SQL Server, reúna e revise as configurações atuais do computador e as contas de serviço usando o seguinte procedimento:
Descompacte o arquivo baixado em uma pasta, por exemplo, C:\Temp.
Execute o prompt de comando como administrador para coletar os dados e salvá-los em um arquivo. Por exemplo: SQLCHECK > C:\Temp\server01.SQLCHECK.TXT.
Observação
Se você estiver solucionando problemas de conectividade de um cliente remoto ou solucionando problemas de consultas de servidor vinculado, execute a ferramenta SQLCHECK em todos os sistemas envolvidos.
Lista de verificação rápida para solucionar problemas de conectividade
Observação
As seções a seguir ajudam você a verificar rapidamente se há problemas de conectividade. Revise tópicos individuais para obter etapas detalhadas de solução de problemas.
Opção 1
Se você tiver acesso à saída da ferramenta SQLCHECK mencionada na seção Pré-requisitos recomendados e examinar as informações em várias seções do arquivo de saída (Computador, Segurança do Cliente e SQL Server), use as informações para resolver os problemas que contribuem para o problema. Veja os exemplos a seguir:
Seção no arquivo
Texto para pesquisa
Ação potencial
Pode ajudar a solucionar problemas (exemplos)
Informações do computador
Aviso: O driver de rede pode estar desatualizado
Verifique online se há novos motoristas.
Vários erros de conectividade
Segurança do cliente e informações do driver
Os conjuntos de cifras Diffie-Hellman estão habilitados. Possível risco de falhas intermitentes de TLS se a versão do algoritmo for diferente entre clientes e servidores
Se o serviço SQL não for iniciado, inicie-o. Se você estiver tendo problemas para se conectar a uma instância nomeada, verifique se o serviço SQL Server Browser foi iniciado ou tente reiniciar o serviço do navegador.
Se você configurar servidores vinculados do SQL Server e o valor Trust for Del estiver definido como false, você poderá ter problemas de autenticação com as consultas do servidor vinculado.
Verifique os valores de TCP habilitado, Portas TCP e assim por diante. Revise se o TCP/IP está habilitado no lado do servidor e se a instância padrão do SQL está escutando em 1433 ou em uma porta diferente.
Vários erros de conectividade
Opção 2
Se você não conseguir executar o SQLCHECK em seu computador SQL Server, poderá verificar os seguintes itens antes de fazer uma solução de problemas detalhada:
Verifique se o SQL Server foi iniciado e se você vê a seguinte mensagem no log de erros do SQL Server:
O SQL Server já está pronto para conexões de clientes. Esta mensagem é apenas para informação. Não é necessária uma ação do usuário.
Use o seguinte comando no PowerShell para verificar o status dos serviços do SQL Server no sistema:
Use o comando a seguir para pesquisar o arquivo de log de erros para a cadeia de caracteres específica "SQL Server agora está pronto para conexões de cliente. Esta é uma mensagem informativa; nenhuma ação do usuário é necessária.":
Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog |select-string "SQL Server is now ready for client connections."
Verifique a conectividade básica sobre o endereço IP e verifique se há anormalidades: ping -a <SQL Server machine>, ping -a <SQL Server IP address>. Se você notar algum problema, trabalhe com o administrador da rede. Como alternativa, você pode usar Test-NetConnection no PowerShell:
Verifique se você consegue se conectar ao SQL Server usando um arquivo UDL. Se funcionar, pode haver um problema com a cadeia de conexão. Para obter instruções sobre o procedimento de teste UDL, consulte Testar a conectividade do OLE DB com o SQL Server usando um arquivo UDL. Como alternativa, você pode usar o seguinte script para criar e iniciar um arquivo UDL-Test.udl (armazenado na pasta %TEMP% ):
clear
$ServerName = "(local)"
$UDL_String = "[oledb]`r`n; Everything after this line is an OLE DB initstring`r`nProvider=MSOLEDBSQL.1;Integrated Security=SSPI;Persist Security Info=False;User ID=`"`";Initial Catalog=`"`";Data Source=" + $ServerName + ";Initial File Name=`"`";Server SPN=`"`";Authentication=`"`";Access Token=`"`""
Set-Content -Path ($env:temp + "\UDL-Test.udl") -Value $UDL_String -Encoding Unicode
#open the UDL
Invoke-Expression ($env:temp + "\UDL-Test.udl")
Verifique se você consegue se conectar ao SQL Server de outros sistemas cliente e logons de usuário diferentes. Se você puder, o problema pode ser específico do cliente ou do login que está enfrentando o problema. Verifique os logs de eventos do Windows no cliente problemático para obter mais ponteiros. Além disso, verifique se os drivers de rede estão atualizados.
Se você estiver enfrentando falhas de logon, verifique se existe um logon (entidade de servidor) e se ele tem CONNECT SQL permissões para SQL Server. Além disso, verifique se o banco de dados padrão atribuído ao logon está correto e se a entidade de banco de dados mapeada tem CONNECT permissões para o banco de dados. Para obter mais informações sobre como conceder CONNECT permissões à entidade de segurança do banco de dados, consulte Permissões de banco de dados GRANT. Para obter mais informações sobre como conceder CONNECT SQL permissões à entidade de segurança do servidor, consulte Permissões de servidor GRANT. Use o seguinte script para ajudá-lo a identificar essas permissões:
clear
## replace these variables with the login, user, database and server
$server_principal = "CONTOSO\JaneK"
$database_principal = "JaneK"
$database_name = "mydb"
$server_name = "myserver"
Write-Host "`n******* Server Principal (login) permissions *******`n`n"
sqlcmd -E -S $server_name -Q ("set nocount on; SELECT convert(varchar(32),pr.type_desc) as login_type, convert(varchar(32), pr.name) as login_name, is_disabled,
convert(varchar(32), isnull (pe.state_desc, 'No permission statements')) AS state_desc,
convert(varchar(32), isnull (pe.permission_name, 'No permission statements')) AS permission_name,
convert(varchar(32), default_database_name) as default_db_name
FROM sys.server_principals AS pr
LEFT OUTER JOIN sys.server_permissions AS pe
ON pr.principal_id = pe.grantee_principal_id
WHERE is_fixed_role = 0 -- Remove for SQL Server 2008
and name = '" + $server_principal + "'")
Write-Host "`n******* Database Principal (user) permissions *******`n`n"
sqlcmd -E -S $server_name -d $database_name -Q ("set nocount on; SELECT convert(varchar(32),pr.type_desc) as user_type, convert(varchar(32),pr.name) as user_name,
convert(varchar(32), isnull (pe.state_desc, 'No permission statements')) AS state_desc,
convert(varchar(32), isnull (pe.permission_name, 'No permission statements')) AS permission_name
FROM sys.database_principals AS pr
LEFT OUTER JOIN sys.database_permissions AS pe
ON pr.principal_id = pe.grantee_principal_id
WHERE pr.is_fixed_role = 0
and name = '" + $database_principal + "'")
Write-Host "`n******* Server to Database Principal mapping ********`n"
sqlcmd -E -S $server_name -d $database_name -Q ("exec sp_helplogins '" + $server_principal + "'")
Depois de passar pelos pré-requisitos e pela lista de verificação, consulte problemas comuns de conectividade e selecione a mensagem de erro correspondente para obter etapas detalhadas de solução de problemas.
Este artigo fornece uma possível lista de perguntas com base em vários componentes que você pode usar para identificar efetivamente o tipo de problemas de conectividade do SQL Server e encontrar a solução correta.
Fornece etapas de solução de problemas para erros relacionados à rede ou específicos da instância se você não puder se conectar a uma instância do Mecanismo de Banco de Dados do SQL Server em um único servidor.
Administrar uma infraestrutura de banco de dados do SQL Server para bancos de dados relacionais de nuvem, locais e híbridos usando as ofertas de banco de dados relacional do Microsoft PaaS.