Habilitando a conexão remota no SQL Server 2008

E ai pessoas, como tenho recebido alguns e-mails pedindo para mostrar “como fazer para que outros computadores acessem o meu banco de dados” e “habilitar o acesso remoto do SQL Server 2008”, então vamos à demonstração!

Antes de começar, se o servidor estiver fora de um “domínio” ou você não saiba o que é “domínio”, dê uma olhada neste artigo:
https://sqlfromhell.wordpress.com/2009/05/24/habilitando-sql-authentication-e-o-usuario-sa/

Em seguida, habilitamos o Firewall do Windows (permitindo exceções). Mas para ambientes de teste não há problema em deixá-lo desabilitado.

Dentre as diversas exceções, adicionamos mais uma porta:

Para boa parte dos cenários, a porta TCP 1433 já vai suprir as necessidades:

Em outros cenários mais específicos, pode existir a necessidade de habilitar as portas UPD 1434, TCP 1434 e outras (at. http://msdn.microsoft.com/en-us/library/ms175483.aspx ).

No SQL Server Management Studio, verifique se nas propriedades do servidor esta habilitada a opção “Allow remote connections to this server”. Caso não esteja habilitada, será necessário habilitá-la.

No SQL Server Configuration Manager, mais precisamente nos protocolos da sua instância (ex.: SQLEXPRESS, SQL2005, MSSQLSERVER…), entre nas propriedades do protocolo TCP/IP:

E habilite o protocolo TCP/IP. Em alguns cenários também se faz necessário habilitar o protocolo “Named Pipes”.

E recomendo definir a porta de conexão:

Se você quiser configurar outras portas para o SQL Server, dê uma olhada neste artigo:
https://sqlfromhell.wordpress.com/2009/09/05/portas-sql-server/

Reinicie o serviço do SQL Server da sua instância e o SQL Server Browser, depois em uma máquina cliente, tente se conectar ao servidor com um usuário válido:

Se tudo ocorrer como previsto, teremos a conexão:

Bem, estou usando uma VM “zerada” que até o momento tem o Windows Server 2003 R2 e o SQL Server 2008, assim existe grande possibilidade de não funcionar em outros cenários.

Pontos a levar em consideração para tratar outros cenários:

  • Se você não conseguir ao menos dar um “ping” ou compartilhar uma pasta do servidor à rede ou conectar remoto com o Remote Desktop Connection (mstsc.exe), isso pode ser sinal que tem algo errado com o firewall ou a rede ou até mesmo com o Windows (então não é culpa do SQL Server, ainda…).
  • Programas de Antivírus ou Firewall de terceiros, também são grandes culpados por problemas com o acesso remoto, tanto no servidor como no cliente.
  • O usuário que você esta utilizando para se conectar pode não ter permissão para se conectar ou o servidor não esta no domínio (at. https://sqlfromhell.wordpress.com/2009/05/24/habilitando-sql-authentication-e-o-usuario-sa/ ). Para “testar”, no servidor tente se conectar ao SQL Server com o usuário que você esta utilizando na máquina cliente.
  • Para “testar”, não utilize o SQL Server Management Studio 2005 para se conectar a um SQL Server 2008, pois algumas vezes isso não dá muito certo.

Mais uma coisa, se eu não responder um comentário em 24h é sinal que não estou com acesso à internet, pois possivelmente estarei preso na ilha de LOST (probabilidade 0,001%) ou estou numa “missão” extraordinária pelo Exército Brasileiro (probabilidade 4%) ou estou apagando algum incêndio em alguma consultoria (probabilidade 85%) ou dedicado a algum trabalho acadêmico (probabilidade 10%), então também vale a pena procurar os fóruns do MSDN e/ou o suporte da Microsoft.

Na internet, encontrei outros dois artigos bons sobre o assunto:

Instalando e Configurando o SQL Server 2005 Express – Nilton Pinheiro:
http://www.mcdbabrasil.com.br/downloads/install_sqlexpress.pdf

Como configurar Conexão Remota no SQL Server 2005 – Diego Nogare:
http://www.linhadecodigo.com.br/artigo/1260/como-configurar-conexao-remota-no-sql-server-2005.aspx

61 pensamentos sobre “Habilitando a conexão remota no SQL Server 2008

  1. Cara excelente explicação com os prints e tudo mais eu fiz aqui em casa com meu PC e Netbook e o banco instalado no netbook e no PC eu rodando uma aplicação feita em C# por mim e tudo rodou que era uma maravilha é a mesma coisa que se a aplicação estivesse rodando na maquina que está o bando(netbook)

    Valeu msm

  2. Obrigado pela ajuda!
    É a primeira vez que instalo o ambiente pra programar em ASP.NET do zero(IIS, SQL SERVER, ASP.NET). Não estava conseguindo configurar o SQL Server para o acesso remoto, tão pouco conseguia fazer funcionar a string de conexão pois não sabia como configurar usuários para SQL authentication. Agora está tudo funcionando e posso seguir com o estudo!
    Valeu!

  3. Estalei o Xp-Mode e o Sql2008 e o Sp1. Consigo acessar a máquina através do \\NomeMaquina mas quando temto acessar o Sql2008 não consigo. Na Máquina vitual eu consigo mas da minha máquina não. Fiz todos esse s passos mas não deu certo será que existe algo mais a ser feito?

  4. O seu artigo está excelente!!!
    Mas me surgiu uma dúvida. Eu consigo conectar com esses passos o SQL Server pela internet?

  5. olá, gostei extremamente do artigo, prém aqui no meu notebook e meu pc não funfo,

    defini a string de conexão no vb.net assim ‘Data Source=192.168.1.2; Initial Catalog=MEUBANCODEDADOS; Integrated Security=SSPI; Persist Security Info = False’

    ALTEREI NO SQLSERVER MANAGER O PROTOCOLO TCP/IP PARA ENABLED = TRUE E TAMBÉM DENTRO DELE AS OPÇÇOES ENABLED E A PORTA 1433,

    PORÉM DA ERRO DE CONEXÃO TANTO VIA SQL COMO VIA VB.NET

    O QUE SERÁ QUE ESTÁ DANDO ERRO??

    SE PUDER AJUDAR EU FICO AGRADECIDO.

    BOA NOITE.

  6. PauloP, parabéns cara, vc é demais, salvou meu dia, eu to aqui num cliente me matando desde as 9 da manha, no domingo e graças à sua explicação eu consegui fazer a conexao por ip, acredita que li em varios lugares que o sqlexpress nao funcionava por IP? Mas eu sabia que tinha alguma coisa, e era a porta, pois aqui ele tinha definido uma porta aleatoria e nao a 1433. Muito obrigado mesmo.

    SQL From Hell Rules!!!!

  7. Observe que a string de coneãxo ado em para sql server compátivel com o 2000 e diferente das versões superiores. altere o tipo de compatibilidade em propriedades, opções (properties, options)

  8. Cara tou com seguinte problema em conecta com banco de dados sql serve 2005 quando o banco esta em uma pasta compartilhada da rede .
    por exemplo
    quando o banco esta na minha maquina utilizo essa string :

    string strcon = “Data Source=.\\SQLEXPRESS;AttachDbFilename=’C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\banco.mdf’;Integrated Security=True;Connect Timeout=30;User Instance=True”;

    funciona normal

    mais quando coloco caminho da pasta compartilhada aplicação não consege conectar ao banco
    exemplo :

    string strcon = “Data Source=.\\SQLEXPRESS;AttachDbFilename=’P:\\TI\\banco.mdf’;Integrated Security=True;Connect Timeout=30;User Instance=True”;

    você pode me ajuda ??

  9. cara muito bom!!
    porem o management studio ficou muito lento, parece que toda hora ele tenta ir ao servidor e voltar..
    com isso a edição de query no management studio ta ficando muito ruim.. toda hora ele da uma travadinha..
    sabe como posso resolver isso!?

    quando eu conecto localmente não da a minima travada.

    • Boa noite Rodrigo, é possível que exista fatores externos que prejudiquem o desempenho do SSMS, como a velocidade da rede entre a máquina cliente e o servidor, ou o próprio desempenho da máquina cliente ou do servidor.

  10. Pingback: Aniversário de 3 anos do SQL From Hell!! « SQL From Hell.com

  11. Estou com um problema em meu server. Tenho Windows Server 2008 Enterprise com SQL Server 2008 r2, mais máquina virtual com Genexus 8. Acontece que para funcionar bem o Genexus (digo para ele poder especificar), necessito desabilitar a conta de usuário do windows Server (UCA) e daí gera um impacto no SQL ao eu tentar conectar via outro pc com uma conta de usuário sql….ele até conecta a ferramenta mas não os bds existentes lá. Se habilito, ele conecta beleza, mas não funciona a especificação do Genexus…Alguém pode me socorrer….????

  12. Bom dia Paulo, tenho um servidor na Locaweb e tento aceder pelo Microsft sqlserver studio e ocorre o erro: micosoft sqlserver 53. Fiz todos os passos acima, inclusive, para testar, desliguei o firewall do servidor. O servidor está na locaweb e está com windows 64, a minha máquina está com o 32. O problema pode ser isto? Você pode ajudar-me? Acedi o servidor remotamente e consegui fazer o login pelo usuário “sa”.

  13. Cara, muito boa explicação.

    Mas eu tô com dúvida em como eu faço a conexão pela aplicação (visual Studio).

    Como ficaria a Connection String?

  14. Paulo R. Pereira
    Parabéns pela explicação!
    Gostaria de uma ajuda sua, o meu funcionou legal, mais quando vou abrir uma janela no programa em que tenha uma datagrid que foi criada pelo dataset, ele da erro de conexão com o banco, e os relatorios criatos no crystal reports tbm!
    saberia pq?
    agora os datagrid que foram feitos na unha msm, funciona normal!

  15. Tenho instalado no meu servidor o Microsoft SQL Server 2008 R2 November CTP meu servido esta funcionando normal mais a estaçao nao consegue se comunicar com a base de dados ja fiz todo o procedimento acima…mais ainda estou com o mesmo erro…
    alguma dica?
    Servidor: server 2008 r2
    Estaçao: Windows 7 utimate

    obs: ja liberei a porta 1433 no firewall mais quando dou o comando NETSTAT -N Ele Nao Mosta a Porta 1433…

  16. Muito Obrigado Meu Brother
    Muito Grato Pela Ajuda
    O SQL Server Browser estava Desativado
    E bati tanta Cabeá que coisa simpes complica

  17. Excelente, muito obrigado, por este artigo percebi porque não estava conseguindo fazer a
    conexão via ODBC e Manager Studio.

    Vlwww

    Paulo Roberto

  18. Muitas vezes o problema é o com o Server Browser, principalmente nas versões Express na qual pode vir desativado.
    Mas, a dica aqui presente é muito comum, e muito boa.

  19. é possível acessar um servidor via app com vb.net, cuja finalidade é abrir arquivos na raiz c:? a string de conexão é mesma de uma conexão para banco de dados?

  20. Boa Noite,
    Consegui habilitar a porta 1433 conforme explicado, porem depois de 5 dias utilizando a maquina cliente nao conectava mais, porque ocorre isto? obg.

  21. Pingback: Conectar o Java no SQL Server 2008 | Códigos Fontes

  22. Me ajudou bastante. Depois de perder um bom tempo buscando a solução. No meu caso era somente a porta no Firewall do Windows. Grato pela informação.

  23. Eu consigo conectar no sql manager mas não consigo fazer o programa de backup conectar a ele. O programa emite a mensagem: “Erro ao Localizar Servidor/Instância Especificada”.e quando acesso SQL Server Configuration Manager -> SQL Server Services, os serviços não aparecem, o que aparece é o seguinte erro: “Falha na chamada de procedimento remoto”.

    Já estou sem ideias de como resolver.

  24. Pingback: Habilitando a conexão remota no SQL Server 2008 | Wagner Caetano

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s