Data

7 jul, 2008

Aliases do SQL Server

Publicidade

Essa semana me fizeram uma pergunta interessante e eu acredito que a resposta é bem útil para desenvolvedores e DBAs.

Imaginem uma aplicação. Como os desenvolvedores sabem, as aplicações exigem uma ou mais strings de conexão que são utilizadas para indicar para a aplicação com qual instância ela irá trabalhar, qual o banco de dados, o modo de autenticação, entre outras configurações.

Aí é que entra a pergunta e a respectiva resposta.

Thiago, e se eu fizer alguns testes em minha aplicação – vou trazer do cliente a aplicação atual, fazer alterações e depois atualizar novamente a aplicação no cliente – eu terei que mudar todas as strings de conexão em minha máquina? Afinal de contas, a instância instalada no cliente onde roda efetivamente a aplicação nem sempre tem o mesmo nome da minha intância de testes.

Bem, falarei essa semana a respeito de uma simples solução para este problema, mas muito útil para nós DBAs e para os desenvolvedores (talvez mais para estes últimos), os ALIASES do SQL Server.

Um Alias nada mais é que um apelido que desejamos colocar em uma instância.

Imaginemos a seguinte situação:

Você tem uma instância do SQL Server instalado em um cliente chamada Imasters e as suas aplicações acessam os bancos de dados dessa instância com a seguinte string de conexão:

"Provider=SQLOLEDB.1;Password=Pa$w0rd;Persist Security Info=True;User ID=sa;Initial Catalog=Noticias;server=Imasters"

Este cliente precisa que sejam feitas algumas alterações em seu sistema de notícias e você, como um bom desenvolvedor, traz a versão instalada no cliente para a sua máquina para que possa alterar e fazer testes antes de atualizar a aplicação no cliente.

Mas, como eu já mencionei, a sua instância de teste não tem o nome Imasters e sim ClientesTeste. Aplicando o método que irei ensinar passo-a-passo, não haverá o trabalho de mudar todas as string de conexão.

Como criamos tais Aliases do SQL Server?

Siga o procedimento abaixo:

SQL Server 2000

Vá em:

  1. Iniciar
  2. Todos os programas
  3. Microsoft SQL Server
  4. Client Network Utility

Na janela que irá se abrir, selecione a aba Alias e clique no botão Adicionar.

Para adicionar um novo Alias, você deverá digitar o nome do Alias, ou seja, o apelido que deseja colocar na instância, o tipo de biblioteca de rede (tcp/ip, named pipes, etc), e os parâmetros de conexão. Neste caso coloque o nome da instância de teste que seria ClientesTeste.

Configurando um Alias no SQL Server 2000Configurando um Alias no SQL Server 2000

SQL Server 2005

Vá em:

  1. Iniciar
  2. Todos os programas
  3. Microsoft SQL Server 2005
  4. Configuration Tools
  5. SQL Server Configuration Manager

Na janela que irá se abrir, selecione a opção à esquerda “Configuração do SQL Native Client”.

Clique com o botão direito na opção Aliases e clique em Novo Alias.

Similar à configuração do 2000, para adicionar um novo Alias você deverá digitar o nome do Alias, ou seja, o apelido que deseja colocar na instância. Selecione o protocolo e coloque o número da porta (caso necessário), e o nome do servidor, neste caso coloque o nome da instância de teste que seria ClientesTeste.

Configurando um Alias no SQL Server 2005Configurando um Alias no SQL Server 2005

Percebam que, tanto na versão 2000 como na 2005, colocamos o apelido de Imasters justamente por que queremos que a instância ClientesTeste seja apelidada de Imasters para que quando a aplicação procure por Imasters ela a encontre.

Deve-se ficar atento aos seguintes pontos:

  • O usuário e a senha deverão ser o mesmo utilizado no cliente caso o acesso seja feito via SQL Server Atuthentication
  • Cuidado ao utilizar os Aliases: Um erro de digitação pode causar grandes estragos.

Só para citar um caso de erros na utilização de Alias.

Um DBA que trabalhava comigo trocou a senha do usuário SA pelo SQL Server Management Studio. Ele achou que estava com o Alias criado corretamente apontando para a instância de testes que se encontrava na máquina dele, e realmente estava criado, mas por causa de uma letra que ele digitou errado no Alias ele acabou acessando o servidor real e aí já viu né!?

Não que vá acontecer, mas é bom tomarmos cuidado ao utilizar tal funcionalidade.

Espero que tenham entendido o conceito que apresentei esta semana.

Qualquer dúvida postem aqui ou me enviem um e-mail quer irei responder o mais breve possível.

Um grande abraço e até a próxima.