Professional Documents
Culture Documents
Muitos casos de problemas com conexão ao servidor de Banco de Dados ocorrem por
uma limitação que o SQL Server 2005 possui por padrão. Esta configuração de
segurança que vem padronizada no SQL pode ser alterada facilmente. Neste artigo,
será apresentada uma maneira de como solucionar este problema rapidamente. Para
simular o ambiente, duas máquinas serão utilizadas. Uma será o Servidor de Banco de
Dados, e a outra será a máquina cliente. No diagrama abaixo, existe uma arquitetura
de exemplo para ilustrar a solução.
Vamos ao que interessa. Ao tentar acessar o Servidor de Banco de Dados com sua
configuração padrão, uma mensagem de erro é apresentada. Esta mensagem diz que
ocorreu um erro enquanto estabilizava uma conexão com o servidor, esta falha pode
ser pelo fato da configuração padrão do SQL Server não permitir conexões remotas.
"An error has occurred while establishing a connection to the server. When connecting
to SQL Server 2005, this failure may be caused by the fact that under the default
settings SQL Server does not allow remote connections."
1. Permitir conexões remotas à instância do SQL Server que será acessada de outro
computador;
2. Habilitar o protocolo TCP/IP para conexão e tráfego de informações;
3. Iniciar o serviço do SQL Server Browser;
4. Configurar o Firewall para permitir que informações relacionadas ao SQL Server seja
permitido de passar por ele.
Estes passos garantem a conexão remota do SQL Server. Abaixo cada passo é
explicado detalhadamente.
Passo 1: Para permitir que computadores acessem instâncias do SQL Server em outra
máquina, a primeira coisa a ser feita é uma configuração na instância que receberá as
conexões remotas, no nosso caso, o SQL2005 no servidor NGRSERVER.
Para fazer isso, conecte-se localmente na instância do servidor, clique com o botão
direito na instância conectada e aponte o mouse para Properties.
Depois de acessar a tela das propriedades da instância do SQL Server, escolha, no
menu da esquerda, a opção Connection. A parte direita da tela será referente à
Connection, procure a opção Allow remote connection to this server. Deixe esta
opção marcada. Clique em OK.
A conclusão deste procedimento passa a garantir que a instância do SQL Server poderá
receber conexões remotas, mas este não é o único passo a ser cumprido. Mais alguns
passos devem ser seguidos para a conclusão da tarefa.
Passo 2: Para permitir que o protocolo TCP/IP trafegue informações do SQL e que
conexões possam ser estabelecidas através deste protocolo, vamos liberá-lo no SQL
Server, utilizando uma ferramenta disponível na instalação das ferramentas de
administração. A ferramenta é o SQL Server 2005 Surface Area Configuration.
Esta ferramenta por padrão, encontra-se na pasta Configuration Tools do SQL Server
2005. Nesta ferramenta, utilizaremos os recursos de Surface Area Configuration for
Services and Connections.
Acesse Surface Area Configuration for Services and Connections, no menu da
esquerda expanda o item da instância, neste caso, SQL2005. Depois expanda
Database Engine e selecione Remote Connections. Na tela da direita, selecione a
opção Local and remote connections e em seguida Using TCP/IP only. Clique em
OK.
Esta configuração permite agora, que a instância selecionada receba conexões locais e
remotas, as conexões remotas serão somente por TCP/IP. A opção Using both TCP/IP
and named pipes também poderia ser sido utilizada, sem problemas.
As alterações que foram feitas nestas duas ferramentas são úteis para garantir que a
instância do SQL Server selecionada possa receber conexões remotas e que o
protocolo remoto de conexão é o TCP/IP.
Passo 4: Para que as conexões remotas funcionem no SQL Server 2005, o Firewall da
rede deve ter exceções para as instâncias do SQL Server 2005 e o serviço do SQL
Server Browser. Para exemplificar, colocaremos as exceções no Firewall do próprio
Windows. Caso você utilize outro Firewall, você deve ler sua documentação para
realizar o procedimento de liberação dos programas utilizados.
O Firewall do Windows está presente nas instalações do Windows XP com Service Pack
2 ou superior. Para acessar o Firewall do Windows, vá em Iniciar > Painel de Controle
> Firewall do Windows ou digite firewall.cpl em Iniciar > Executar e clique em OK. A
liberação no Firewall deve ser feita para cada instância que terá suas conexões
remotas permitidas. Realizar estas exceções em cada instância do SQL Server é
necessária pelo fato de ser permitido instalar diversas instâncias do SQL Server em um
mesmo servidor. Cada instalação do SQL Server é chamada de instância, e cada
instância pode ter quantos Bancos de Dados forem necessários, podendo ser repetidos
ou não em uma instância ou outra. Para colocar uma instância do SQL Server nas
exceções do Firewall, devemos abrir a aba Exceções do Firewall do Windows, clicar em
Adicionar Programa, procurar o arquivo SqlServr.exe que por padrão, encontra-se na
pasta C:\Arquivos de Programas\Microsoft SQL Server\MSSQL.1\MSSQL\Binn.
A pasta MSSQL.1 é a pasta referente à instância 1 do SQL Server. Se for colocar uma
exceção para uma segunda instância do SQL, o arquivo SqlServr.exe deve ser
localizado na pasta MSSQL.2.
Para colocar uma exceção ao serviço do SQL Server Browser, devemos seguir os
mesmos passos que percorremos para colocar exceção à instância do SQL Server, a
única diferença será procurar o arquivo SqlBrowser.exe que por padrão está na pasta
C:\Arquivos de Programas\Microsoft SQL Server\90\Shared.
Estes passos apresentados auxiliam a conexão remota com o Servidor de Banco de
Dados através de máquinas clientes. Podemos ver que seguindo os passos
corretamente, o acesso de aplicações e de ferramentas administrativas deixou de ser
exclusivamente da máquina do Servidor de Banco de Dados, e passou a ter acessos
liberados para outras máquinas da LAN (Local Area Network). Lembrando que, para
acessar uma instância do Banco de Dados, você terá que colocar um usuário e senha
válidos para realizar a conexão.