Banco de Dados - SQL Server

Como configurar Conexão Remota no SQL Server 2005

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.

por Diego Nogare



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.

O nome do Servidor de Banco de Dados é NGRSERVER e a máquina cliente se chama NOTEBOOK. A instância do SQL Server 2005 que está no servidor é chamada de SQL2005.

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."

A solução deste problema é resolvida em alguns passos:

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.

Continuando com a configuração do TCP/IP, vamos utilizar agora outra ferramenta, SQL Server Configuration Manager. Nesta ferramenta utilizaremos o recurso SQL Server 2005 Network Configuration, que se encontra no menu da esquerda. Ao expandir este item, encontramos o Protocols for SQL2005. Ao clicar nele, algumas opções se abrirão do lado direito da tela. Nas opções disponibilizadas, devemos deixar o protocolo TCP/IP com status de Enabled. Para fazer isso, clique com o botão direito do mouse em TCP/IP e vá em Enabled. Após isso, ele aparecerá configurado.

Depois de configurar o status para Enabled, mais duas verificações devem ser feitas nas propriedades do protocolo TCP/IP. Para acessar estas configurações, clique com o botão direito do mouse em TCP/IP e em seguida em Propriedades. Uma tela com duas abas superiores se abrirá. A primeira aba Protocol, deve ficar com a propriedade Enabled configurada para Yes.

Na segunda aba, IP Addresses, devemos garantir que as propriedades Active e Enabled estejam configuradas para Yes.

Após garantirmos estas configurações, clicamos em OK para salvar nossas alterações.

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 3: Para iniciar o serviço do SQL Server Browser, utilizaremos novamente a ferramenta SQL Server Configuration Manger. Para acessar a área que controla os serviços do SQL Server, no menu da esquerda, será utilizado o item SQL Server 2005 Services. Na parte direita da tela, os serviços relacionados ao SQL Server são apresentados. O serviço SQL Server Browser encontra-se com seu State configurado para Stopped. Para iniciar o serviço, clique com o botão direito do mouse no serviço e em seguida clique em Start. Este processo levará alguns instantes, e o State antigo passará a ser Running.

Após a inicialização do serviço do SQL Server Browser, e as configurações de liberação para acesso remoto e de TCP/IP, o serviço da instância do SQL Server deve ser reiniciado para que as alterações tenham efeito. Para fazer isso, na mesma tela onde foi iniciado o serviço do SQL Server Browser, selecione o serviço do SQL Server (SQL2005), clique com o botão direito do mouse e aponte p ara Restart. Aguarde alguns instantes a parada e a inicialização do serviço. Lembre-se que SQL2005 é a instância do SQL Server do servidor que utilizamos como exemplo.

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.

Até a próxima.

Diego Nogare

Diego Nogare - Graduado em Ciência da Computação e Pós-Graduado em Engenharia de Computação com ênfase em Desenvolvimento Web com .NET, Colaborador do Portal Linha de Código, co-Líder do grupo de usuários Codificando .NET, co-Líder dos Microsoft Student Partners [MSP] de São Paulo e Microsoft Most Valuable Professional [MVP] em SQL Server, possui certificações MCP e MCTS em SQL Server 2005, é palestrante em eventos da Microsoft, Codificando .NET e INETA BR, mantém o site: www.diegonogare.net.