Remote Admin Connections

Recentemente em um treinamento sobre troubleshooting, falei sobre como acessar o servidor através do DAC – Dedicated Admin Connection. Para minha surpresa, a maioria não sabia o que era e os que já haviam habilitado não sabiam como funcionava.

O DAC foi introduzido no SQL Server 2005 e é nossa principal forma de acesso quando o SO ou mesmo o SQL Server estiverem “engargalados”.

De maneira bem simples, o DAC troca o contexto para conexão de administrador e aumenta a prioridade ao acesso dos recursos.

“Ah, mas eu não consigo acessar a console do meu servidor porque está tudo travado”.

Não tem problema é possível habilitar o acesso remoto.

Como Funciona?

O DAC trabalha com um scheduler reservado, ou seja, o SQL Server deixa sempre uma janela aberta caso algo aconteça. Este é o acesso privilegiado e reservado para manutenções.

Antes de seguir é importante deixar claro que prioridade só existe para um, para mais deixa de ser prioridade, logo este é um recurso que deve ser utilizado como privilégio e apenas para recuperar o sistema em caso de falha.

Como Usar?

Como citado anteriormente, o acesso de administrator já é habilitado por padrão para conexões locais. Para conexões remotas é necessário habilitar o parâmetro “Remote Admin Connections”.

O código para habilitar segue abaixo:

 


EXEC sp_configure 'remote admin connections', 1;

GO

RECONFIGURE

GO
 

 

Para conectar como DAC

SQLCMD:

sqlcmd1

SSMS :

Basta colocar o Admin: na frente do usuário.

ssms

 

Considerações

1: Verifique o firewall. De nada adianta liberar o acesso dedicado de administrador, se não for possível passar pelo firewall;

2: Só pode haver uma conexão dedicada acessando;

sqlcmd

3: Quando conectar pelo SSMS o Object Explorer não irá carregar;

4: A conexão que estiver utilizando o privilégio dedicado de administrador não pode ser dropado;

5: Para descobrir quem está utilizando esta sessão, costumo utilizar a query abaixo que é um join da sys.endepoints como a sys.dm_exec_connections.

select C.session_id, C.connect_time, C.last_read,

C.last_write, C.client_net_address

from sys.endpoints E

inner join sys.dm_exec_connections C

on e.endpoint_id = c.endpoint_id

where e.is_admin_endpoint = 1

Concluindo, espero ter colaborado em momentos de troubleshooting, ou melhor, que este post seja lido antes de precisar para lembrar de habilitar o acesso.

Abraço, Rodrigo

 

PS. Em 31/5/2016 o colega Tiago Neves postou em seu blog um post com o mesmo conteúdo. Recomendo a leitura do post dele no link.

Autor: SQLCrespi

Rodrigo Crespi é MVP Data Platform, MCT, MCSE, MCSA, MCIT, MCDBA e MCP em SQL Server, possuí outras certificações em .NET Framework, Dynamics CRM e etc. Iniciou trabalhando com SQL Server na versão 6.5 na época como desenvolvedor, logo direcionou a sua carreira para a área de administração de bancos de dados. Atualmente é Sócio da CrespiDB – Soluções em Plataformas de Dados, além de professor universitário na Uniftec – Caxias do Sul Autor de diversos artigos publicados em sites e revistas sobre SQL Server e engenharia de software, mantem o canal SQLCrespi no Youtube, o blog SQLCrespi, além de ser dedicado ao SQL Server RS PASS Chapter Leader do grupo de profissionais em SQL Server do Rio Grande do Sul.

2 thoughts on “Remote Admin Connections

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s