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.

2 comentários em “Remote Admin Connections

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.