Uma única instância do SQL Server pode ter vários nomes?

5

É praticamente tudo no título. Espero que a resposta seja não, mas queria pedir para ter certeza. Basicamente, uma única instância do SQL Server pode ser referenciada por vários nomes. Eu sei que você pode definir o DNS para resolver vários nomes para o mesmo IP / servidor, mas como isso afetaria a conexão com o SQL Server?

    
por Tim Coker 05.07.2011 / 21:09

5 respostas

7

O SQL Server não dá a mínima para o nome DNS ao qual você está se conectando, a menos que você esteja usando o SQL Server por SSL. O nome da instância não pode ser reproduzido a menos que você esteja se conectando a um número de porta TCP específico.

    
por 06.07.2011 / 04:02
5

A parte SERVER do SERVER / INSTANCE pode ser qualquer nome que resolva para o endereço correto, um registro A extra ou um CNAME ou um nome de um arquivo HOSTS.
A única precaução aqui é que o nome falso pode quebrar a autenticação Kerberos. SQL com Kerberos é uma besta engraçada, o SQL Client faz uma pesquisa inversa de DNS no endereço e, em seguida, usa o nome que obtém para criar o SPN para que ele funcione, desde que a pesquisa inversa obtenha o nome do host original do servidor. Além disso, o SQL voltará ao NTLM, portanto, isso causará um problema se você precisar do Kerberos por algum motivo, como se estivesse usando delegação.
Você não pode fazer o SQL responder a mais de um nome INSTANCE. Você pode, no entanto, definir um alias na configuração CLIENT.

Quando você se conecta ao SQL Server, o nome da instância especificado é enviado ao serviço Navegador SQL no servidor, o serviço do navegador responde com a porta TCP na qual a instância solicitada está escutando. É possível especificar esse número de porta na cadeia de conexão ou em um alias. Acabei de criar um alias chamado NEW que aponta para a porta mysqlserver 1966 que tem uma instância nomeada ouvindo nela. Em seguida, consegui conectar-me à instância nomeada simplesmente especificando um nome de servidor NEW. Existem duas desvantagens desse método. Primeiro é que a configuração é necessária em cada cliente, não sei se existe alguma maneira de empurrar essa configuração. A segunda é que uma instância do SQL normalmente usa uma porta dinâmica. Se você quiser definir aliases, precisará alterar o servidor para que ele escute em um número de porta fixo para que os clientes possam ser configurados para se conectar.

    
por 05.07.2011 / 22:42
4

Acho mais fácil criar aliases no gerenciador de configuração do SQL Server que apontam para o mesmo servidor sql.

    
por 05.07.2011 / 22:27
1

Eu executei um teste simples adicionando uma entrada ao meu arquivo HOSTS e parece que o SQL Server não se importa com o nome usado na cadeia de conexão. Eu sempre achei que essa parte importava, mas parece que não.

Nesse caso, não estou me conectando a uma instância nomeada, apenas à instância padrão. Eu diria que, contanto que a parte do servidor de SERVER\INSTANCE corresponda, você poderá fazer isso com uma instância nomeada também. Eu não tenho nenhuma instância nomeada para testar, no entanto.

    
por 05.07.2011 / 21:13
1

Bem Tim na minha experiência, você pode dar ao servidor muitas entradas DNS e você não deve se deparar com um problema em alcançar a instância SQL padrão (ou qualquer instância) no servidor.

As próprias instâncias são diferenciadas no servidor com o SQL Browser Service, que deve ser executado para que as instâncias nomeadas possam ser vistas. Se não, geralmente (99 vezes de 100) a única instância que pode ser vista quando este serviço não está em execução é a instância padrão.

Espero ter ajudado você de alguma forma:)

    
por 05.07.2011 / 21:51

Tags