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:
http://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:
http://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. http://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
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
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!
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?
Jonathas, quando se trabalha com VMs, você precisa levar em consideração a forma pela qual esta VM esta na rede.
Dê uma no seguinte link:
http://technet.microsoft.com/pt-br/library/ee449441(WS.10).aspx
Normalmente, configuro para a VM utilizar uma placa de rede existente do servidor/máquina física, para ela ser reconhecida por toda a LAN.
obrigado pelas dicas, vlw!
ajudo muito aqui, nao estava conseguindo conectar
obrigado mesmo!
O seu artigo está excelente!!!
Mas me surgiu uma dúvida. Eu consigo conectar com esses passos o SQL Server pela internet?
Sim, mas algumas alterações das configurações da rede onde esta o servidor talvez sejam necessárias (ex.: redirecionamento das portas do roteador para o servidor).
PerfeitO! Funcionou aqui.
Muito bom seu artigo man. Me ajudou muito! Obrigado.
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.
Bom dia, verifique se sua string de conexão, pois ela não esta informando o login e senha do seu usuário no SQL Server.
De qualquer forma, recomendo tentar se conectar neste servidor remoto pelo SQL Server Management Studio da máquina onde você esta executando sua aplicação, se não conseguir, crie um login no SQL Server utilizando SQL Authentication ( http://sqlfromhell.wordpress.com/2009/05/24/habilitando-sql-authentication-e-o-usuario-sa/ ) e tente novamente, se nesta nova tentativa, você conseguir, ajuste sua string de conexão informando o login e senha.
Parabéns garoto muito boa explicação, agora o melhor foi os motivos para você não estar na Internet..rs
Um Abraço,
Neto
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!!!!
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)
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 ??
como faço para instalar um banco de dados para desenvolvimento no netbook Aspire one
Assis, você pode optar por instalar o SQL Server Express, seguindo os passos: http://wp.me/pe4Zy-2n
Agradeço muito pele dica…… agora estou com um bom laboratório com minhas maquinas virtuais……..
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.
Muito bom o post, bem explicativo… E sem falar que me ajudou muito.
Parabéns
Para o Sql Express 2008 o procedimento é o mesmo ?
Sim, é o mesmo procedimento.
Só é importante levar em consideração que por causa do SQL Server Express utilizar uma instância nomeada “\SQLEXPRESS”, será necessário que o serviço do SQL Server Browser esteja rodando.
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….????
o cenário para config. do acesso ao sql 2008 sem dominio é o mesmo ?
Sim, só que dê uma olhada neste link antes:
http://sqlfromhell.wordpress.com/2009/05/24/habilitando-sql-authentication-e-o-usuario-sa/
valeu !!!!!!!!!!!!!!!
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”.
Bom dia Marcílio, é possível conectar sem problemas com um cliente x86 (32) em um servidor x64.
Se o seu plano é o IDC da locaweb, dá uma olhada nas regras de firewall no painel do IDC:
http://wiki.locaweb.com.br/pt-br/Firewall_-_Cloud_Server_Pro
Muito Obrigado Paulo. Problema resolvido.
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?
Você pode obter orientações nos seguintes links:
http://sqlfromhell.wordpress.com/2009/10/31/ado-net-introducao/
http://sqlfromhell.wordpress.com/2009/08/04/connection-strings/