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:
- Iniciar
- Todos os programas
- Microsoft SQL Server
- 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 2000
SQL Server 2005
Vá em:
- Iniciar
- Todos os programas
- Microsoft SQL Server 2005
- Configuration Tools
- 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 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.