Quais são as strings de conexão válidas para a caixa de login do SSMS?
De vez em quando terei que me conectar a uma instância do SQL Server com alguma configuração específica ou em uma DMZ onde nenhum nome de host está disponível ou terei que me conectar à Conexão de Admin Dedicada (DAC) via SSMS ou SQLCMD . Como raramente me conecto a um SQL Server por meio de uma porta específica ou com o DAC, tenderei a esquecer quais são as opções exatas de sintaxe para obter uma conexão em funcionamento. Então, terei que pesquisar na Internet novamente pela enésima vez para recuperar as strings de conexão exatas e ficarei regularmente frustrado por não conseguir encontrar as informações necessárias.
Pesquisar
Vou ler todas as perguntas e respostas postadas anteriormente em Serverfault, Stackoverflow e DBA.
Falha no servidor
[1] Porta de conexão DAC SQL Server 2005 SP3
[2] Falha de conexão remota do servidor SQL
[3] Conexão remota do SQL Server 2008 R2
Stackoverflow
[4] Como especificar um número de porta na string de conexão do SQL Server?
DBA
Microsoft
Além disso, pesquisarei o site da Microsoft em busca de artigos relevantes:
[6] Como configurar o SQL Server para escutar em uma porta específica
[7] Configurar o Firewall do Windows para permitir acesso ao SQL Server
[8] Configuração da Área de Superfície
[9] Como configurar o SQL Server para escutar em diferentes portas em diferentes endereços IP?
[10] Configurar um servidor para escutar em uma porta TCP específica (SQL Server Configuration Manager)
[11] Conexão de diagnóstico para administradores de banco de dados
Brent Ozar
E Kendra Little tem um artigo para alguns aspectos interessantes do DAC.
[12] A conexão de administrador dedicada: por que você deseja, quando precisa e como saber quem está usando
Em uma nota lateral: às vezes, a conexão DAC também é chamada de conexão ADMIN.
Acho que, no final, nunca há um resumo real de cadeias de conexão simples para inserir em uma caixa de login do SSMS, nem o que adicionar a um SQLCMD.
Esta pergunta e as respostas a seguir pretendem resumir o que descobri até agora e colocar as informações em um único artigo da base de conhecimento.
Pergunta real
Dadas as seguintes configurações para um SQL Server Standard Edition:
Servername.....: SERVERNAME
IP address.....: 123.1.2.3
1st instance (default instance):
CNAME/Alias....: SERVERNAME-I01
Name...........: MSSQLSERVER
Port...........: 1433 (TCP)
IP address.....: 123.1.2.3
DAC Port.......: 1434 (TCP)
2nd instance (default ip & port configuration according to [7]):
CNAME/Alias....: SERVERNAME-I02
Name...........: Instance2
Port...........: dynamic (TCP)
IP address.....: 123.1.2.3
DAC port.......: dynamic (TCP)
3rd instance (dedicated IP and port):
CNAME/Alias....: SERVERNAME-I03
Name...........: Instance3
Port...........: 1433 (TCP)
IP address.....: 123.1.2.4
DAC port.......: dynamic (TCP)
Browser Service: 1434 (UDP)
Browser service: ON
...quais são as strings de conexão válidas para cada instância que posso inserir na caixa de login do SSMS
- ...com o nome do host?
- ...um pseudônimo (CNAME)?
- ...com um endereço IP?
- ...para uma "Conexão de Administrador Dedicada" (DAC também conhecido como ADMIN:)?
Suposições
- O firewall do servidor está desativado ou configurado de acordo com a documentação da Microsoft mencionada em 6 , 7 ou 8 . Isso também é verdade para qualquer firewall de rede dentro da LAN (incluindo a conexão com um servidor DMZ).
- As instâncias adicionais, além da instância padrão, foram configuradas manualmente para escutar em diferentes endereços IP de acordo com 9 e neste exemplo foram configuradas para escutar em portas fixas 10 .
- Em alguns casos, o DAC será ativado de acordo com 11 e 12 .
Existem várias possibilidades e tentarei respondê-las de acordo com as perguntas numeradas.
As strings de conexão válidas para a caixa de login do SSMS são:
1ª instância
SERVERNAME
SERVERNAME,1433
SERVERNAME-I01
SERVERNAME-I01,1433
123.1.2.3
123.1.2.3,1433
Para a conexão de administrador dedicada (DAC); depende do status do serviço do navegador
a) Serviço do navegador LIGADO
ADMIN:SERVERNAME
ADMIN:SERVERNAME-I01
ADMIN:123.1.2.3
b) Serviço do navegador DESLIGADO
SERVERNAME,1434
SERVERNAME-I01,1434
123.1.2.3,1434
2ª instância
Como a segunda instância tem uma porta dinâmica para a instância do SQL Server e uma porta dinâmica para DAC, as portas devem ser recuperadas do arquivo de log ERROR com antecedência antes de conectar ao SQL Server. Consulte 7 para obter mais informações. Neste exemplo, assumirei que a porta 63390 é usada para a instância do SQL Server e a porta 63389 é usada para a conexão de administrador dedicado. A Microsoft recomenda corrigir a porta IP, permitindo assim configurar corretamente um firewall 6 .
SERVERNAME\Instance2
(Serviço do navegador ativado)SERVERNAME,63390
(Serviço do navegador DESATIVADO)SERVERNAME-I02
(Serviço do navegador ativado)SERVERNAME-I02,63390
(Serviço do navegador DESATIVADO)123.1.2.3,63390
(O serviço do navegador está LIGADO ou DESLIGADO)Usar o endereço IP sem porta conectaria você à instância padrão
Para a conexão de administrador dedicada (DAC); realmente depende do status do serviço do navegador
a) Serviço do navegador LIGADO
ADMIN:SERVERNAME\Instance2
ADMIN:SERVERNAME-I02\Instance2
ADMIN:123.1.2.3\Instance2
Sempre requer o nome da instância, porque o CNAME ou o endereço IP faz referência ao mesmo endereço IP da instância padrão padrão
b) Serviço do navegador DESLIGADO
SERVERNAME,63389
SERVERNAME-I01,63389
123.1.2.3,63389
3ª instância
Usando o nome do host
SERVERNAME\Instance3
Como esta instância está usando a mesma porta do SQL Server que a instância padrão, mas um endereço IP diferente, a
SERVERNAME,1433
notação não funcionaria. Você seria conectado à instância padrão.Usando o CNAME/Alias
SERVERNAME-I03
(Serviço do navegador ativado)SERVERNAME-I03,1433
(Serviço do navegador DESATIVADO)Usando o endereço IP
123.1.2.4
123.1.2.4,1435
Para a conexão de administrador dedicada (DAC); depende do status do serviço do navegador
a) Serviço do navegador LIGADO
ADMIN:SERVERNAME\Instance3
ADMIN:SERVERNAME-I03
(funciona porque o CNAME faz referência a um endereço IP dedicado)ADMIN:123.1.2.4
b) Serviço do navegador DESLIGADO
SERVERNAME,63389
(funciona porque a porta faz referência a uma porta dedicada para DAC)SERVERNAME-I01,63389
(funciona porque o CNAME e a porta fazem referência a uma instância/DAC dedicada)123.1.2.4,63389
serviço do navegador
Se o serviço do navegador estiver DESATIVADO ou não tiver sido iniciado, as conexões não poderão ser roteadas para a porta relevante. Nesse caso, a porta DAC deve ser recuperada do arquivo ERRORLOG da instância. Você deve encontrar uma linha com algo como Suporte de conexão de administrador dedicado estabelecido para ouvir remotamente na porta 63389. para a porta DAC. Este número de porta é a porta na qual o DAC escutará. Você é obrigado a fornecer a porta relevante para a conexão de administrador dedicado e a porta correspondente para a conexão do SQL Server se o serviço do navegador estiver desativado. Você não precisa adicionar o nome da instância à cadeia de conexão ao usar a porta, porque a porta está reservada para a instância.
Resumindo, o serviço do navegador é responsável por converter os nomes das instâncias em portas. Se o serviço do navegador não estiver em execução, você deverá fornecer a porta em vez do nome da instância.
Material de referência