Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

SQL Server – Como criar uma auditoria de logins utilizando os logs da instância

Visualizações: 841 views
Esse post é a parte 21 de 21 da série Segurança e Auditoria
Tempo de Leitura: 4 minutos

Fala pessoal!
Neste post, eu gostaria de mostrar para vocês como criar uma auditoria de logins utilizando os logs da instância, que é uma opção nativa do SQL Server e não exige a criação de nenhum recurso adicional como trigger, Extended Events, Auditoria, etc..

Eu já havia publicado o artigo SQL Server – Como implementar auditoria e controle de logins (Trigger de Logon) utilizando uma trigger e ficou uma solução bem interessante, mas que, como toda trigger de logon, pode oferecer alguns riscos caso não seja bem implementada e impedir os logins dos usuários.

Também mostrei uma solução parecida no artigo SQL Server – Como evitar ataques de força bruta no seu banco de dados, mas o foco era apenas falhas de conexão por usuário inexistente ou senha incorreta.

Como ativar a auditoria de logins no SQL Server

Para ativar a auditoria de logins no SQL Server, primeiro você abra a instância no “Object Explorer”, clique com o botão direito e selecione a opção “Properties”

Clique na aba “Security” e depois na categoria “Login Auditing”, marque a opção “Both failed and successful logins”

Outra forma de ativar isso é utilizando esse script T-SQL:

Após realizar essa alteração, reinicie o serviço do SQL Server pelo SQL Server Configuration Manager.

Importante: Caso o SQL Server Configuration Manager não esteja aparecendo para você no menu iniciar, leia o artigo SQL Server Configuration Manager sumiu? Saiba como recuperar o atalho.

Como ler os dados de auditoria coletados

Para ler os dados de auditoria coletados, vamos utilizar a procedure interna xp_readerrorlog, que faz a leitura dos dados que estão nos logs do SQL Server.

Para saber mais sobre essa procedure e outras procedures internas do SQL Server, leia o artigo As procedures estendidas não documentadas do SQL Server.

Segue abaixo o script que você pode utilizar para capturar esses dados dos logs do SQL Server e armazenar em uma tabela física do seu banco de dados, para manter histórico.

Resultado da auditoria:

Com esses dados, você já pode criar vários monitoramentos, análises, acompanhar a quantidade de logins, verificar se está tendo algum ataque de força bruta ou saber se determinado usuário está logando ou não no banco de dados.

Espero que tenham gostado dessa dica e até a próxima!