DataARTIGO

Conectando no SQL Server utilizando Credencial do Windows

Neste artigo você vai saber sobre como conectar no SQL Server utilizando Credencial do Windows. Um assunto que surgiu no meu dia a dia do trabalho.

Conectando no SQL Server utilizando Credencial do Windows
Imagem: Tiago Neves

Olá pessoal, tudo certo?

No post de hoje vou compartilhar um caso do dia a dia que tive que atender e achei bem interessante.

Como muitos sabem, neste momento obscuro da humanidade causado pelo COVID-19, muitas empresas tem implementado a rotina de trabalho home-office, o que creio que será o futuro de muitas empresas, mesmo quando essa pandemia acabar.

Entendendo o cenário:

Uma das empresas que atendo implementou a rotina de trabalho home-office. Com isso, foi solicitado que as pessoas que precisam acessar o banco de dados continuem utilizando o método de autenticação “Windows Authentication”.

Os desenvolvedores fazem o acesso da seguinte forma:

  • Utilizam os seus computadores pessoais;
  • Conectam na VPN da empresa;
  • Conectam diretamente no servidor utilizando um Remote Desktop;
  • Por fim, acessam o banco de dados usando o SSMS com a autenticação “Windows Authentication”.

cenário desejado para os desenvolvedores é:

  • Que eles parem de utilizar o Remote Desktop para acessar diretamente o servidor;
  • Passem a utilizar o seu próprio computador pessoal para acessar o banco de dados via SSMS (SQL Server Management Studio). Entretanto, eles ainda precisam utilizar a autenticação “Windows Authentication”.

Solução:

Pensei em algumas soluções possíveis:

  • Publicar somente o SSMS no Remote Desktop, mas isso não atenderia à solicitação do cliente, pois eles continuariam utilizando o Remote Desktop; (solução descartada)
  • Outra solução pensada foi utilizar o AD Azure, mas também demandaria tempo e custo; (solução descartada)
  • Por fim, trocando uma ideia com o Wiluey Sousa, ele sugeriu criar as credenciais no Cofre de Credenciais do Windows. (solução utilizada!)

Agora vou mostrar um passo a passo de como podemos fazer isso!

Step-by-Step:

Em primeiro lugar, vamos abrir o “Control Panel” e pesquisar por “credential”.

No “Credential Manager”, selecione o “Windows Credentials” -à “Add a Windows credential”.

Nas credenciais, devemos cria-la utilizando o Endereço IP. Se você preferir utilizar o FQDN, será necessário adicionar uma entrada no Registro do Host do Windows. Agora vou mostrar como podemos fazer essas duas configurações. Vamos lá!

Criando a credencial utilizando o Endereço IP:

  • Internet or network address – Nome do Servidor ou Endereço IP a ser utilizado. Um ponto muito importante é informar a PORTA do serviço do SQL Server. No meu caso, estou utilizando a porta 1433 (porta padrão do SQL Server).
  • User Name – Informar o Nome do Usuário que você vai utilizar para se autenticar no AD.
  • Password – Informar a Senha do Usuário. Um ponto de atenção é que se você digitar a senha errada ele não vai dar erro para criar a credencial, porém ao tentar se autenticar no SQL Server vai dar erro.

Ao criar a credencial, nós estamos vinculando o nosso usuário local com o usuário do servidor (Windows Authentication), como se estivéssemos utilizando o Remote Desktop.

Depois disso, no SSMS devemos informar o IP e selecionar o “Windows Authentication”.

Mesmo utilizando o “User Name” com o nome do seu usuário local, na verdade você vai se conectar no banco de dados utilizando a credencial no AD que você criou anteriormente.

Após conseguir conectar no banco de dados, podemos fazer um teste e visualizar as sessões utilizando o script abaixo:

sql
	
SELECT conn.session_id, host_name, program_name,
    nt_domain, login_name, connect_time, last_request_end_time 
FROM sys.dm_exec_sessions AS sess
JOIN sys.dm_exec_connections AS conn
   ON sess.session_id = conn.session_id;

Como podemos ver, o “login_name” está utilizando o usuário do domínio ao invés do usuário local que tinha aparecido na tela de conexão do SSMS! Show, conseguimos!!!

Criando a credencial utilizando o FQDN:

As informações são as mesmas da configuração utilizando o IP, a única diferença é que agora você deverá colocar o nome do DNS, mantendo a porta também.

Para conectar no SSMS é necessário adicionar as entradas na tabela de hosts do Windows “C:\Windows\System32\drivers\etc\hosts”.

Após adicionar as entradas na tabela de hosts, basta conectar no SSMS normalmente.

sql
	
 SELECT conn.session_id, host_name, program_name,
    nt_domain, login_name, connect_time, last_request_end_time 
FROM sys.dm_exec_sessions AS sess
JOIN sys.dm_exec_connections AS conn
   ON sess.session_id = conn.session_id;

Essa foi a solução implementada no cliente! Espero que se vocês passarem por uma necessidade deste tipo, essa solução também possa ser útil.

Bom pessoal por hoje é isso.

Abraços,

Tiago Neves

MTAC, Local Group Leader SQL SERVER - ES e palestrante em diversos eventos de plataforma de dados no Brasil. Atualmente trabalha como consultor SQL Server na Fabrício Lima Soluções em Banco de Dados, atendendo clientes de todo o Brasil. Trabalha com SQL Server desde de 2009.

Ver perfil