Neste artigo, vamos configurar uma auditoria completa no SQL Server para monitorar atividades no banco de dados. O processo é dividido em duas partes: a criação do Server Audit (o arquivo onde os dados serão gravados) e o Database Audit Specification (as “regras” do que será auditado).

Pré-requisitos

  1. Acesso ao servidor onde se encontra a instância do SQL Server.
  2. Criação de uma pasta no sistema de arquivos para receber os logs.
    • Exemplo utilizado neste laboratório: F:\MsSql_Backup\Auditoria

Passo 1: Criar o Server Audit

O Server Audit define onde e como os dados serão salvos.

  1. Abra o SQL Server Management Studio (SSMS) e conecte-se à instância.
  2. No Object Explorer (Pesquisador de Objetos), expanda a pasta Security (Segurança).
  3. Clique com o botão direito em Audits e selecione New Audit… (Nova Auditoria).

Ao abrir a janela de configuração, preencha os campos conforme as boas práticas abaixo:

  • Audit name: Defina um nome identificável.
    • Sugestão: Auditoria_<NomeDoBanco>
  • Queue delay (in milliseconds): Tempo de espera antes de forçar a gravação do log.
    • Padrão: 1000 (1 segundo). Se performance for crítica, você pode aumentar esse valor. O valor 0 torna a escrita síncrona (mais segura, porém mais lenta).
  • On Audit Log Failure: O que fazer se o sistema não conseguir gravar a auditoria?
    • Continue: O banco continua funcionando, mas perde-se o rastro da auditoria (Recomendado para ambientes não críticos).
    • Fail operation: Falha a transação que tentou ser auditada.
    • Shut down server: Desliga o SQL Server (Não recomendado).
  • Audit Destination: Escolha File (Arquivo).
  • File Path: Selecione a pasta criada anteriormente (F:\MsSql_Backup\Auditoria).

Configuração de Rotatividade de Arquivos:

Para evitar que o disco encha com um único arquivo gigante, configure os limites:

  • Maximum rollover files: Defina quantos arquivos manter (ex: 10 arquivos).
  • Maximum file size: Tamanho máximo de cada arquivo (ex: 100 MB).

Passo 2: Criar o Database Audit Specification

Agora que temos o “destino” (Server Audit), precisamos definir as “regras” (quais ações em qual banco de dados vamos vigiar).

  1. No Object Explorer, expanda a pasta do Banco de Dados que deseja auditar.
  2. Vá em Security > Database Audit Specifications.
  3. Clique com o botão direito e selecione New Database Audit Specification….

Na tela de configuração:

  1. Name: Dê um nome para esta especificação (ex: Spec_Auditoria_Vendas).
  2. Audit: No menu dropdown, selecione o Server Audit que você criou no Passo 1.
  3. Actions (Tabela de Ações): Aqui você define o que será auditado.
    • Audit Action Type: Escolha o tipo de ação.
    • Object Class / Object Name: Defina se é no banco todo ou em uma tabela específica.
    • Principal Name: Defina se é para todos os usuários (public) ou um usuário específico.

Exemplos comuns de ações para auditar:

Audit Action Type Descrição
SELECT Monitora quem visualizou dados.
INSERT, UPDATE, DELETE Monitora quem alterou dados.
EXECUTE Monitora quem executou Stored Procedures.
FAILED_LOGIN_GROUP Monitora tentativas de login falhas.

Escolha o que melhor aplica ao seu ambiente.

Visualizando os Dados

Após configurar e gerar tráfego no banco, você pode ler o arquivo de auditoria criado usando a função nativa do SQL:

SELECT * FROM sys.fn_get_audit_file ('F:\MsSql_Backup\Auditoria\*', default, default);