Rastreando Objetos Criados ou Excluídos do seu Banco de dados SQL Server Sem Trilhas de Auditoria

DBA e Consultor de Banco de Dados

Rastreando Objetos Criados ou Excluídos do seu Banco de dados SQL Server Sem Trilhas de Auditoria

Tempo de leitura: 3 minutos

Olá pessoal,

Tudo bem?

No post de hoje falaremos sobre um recurso bem interessante presente no SQL Server. Como rastrear objetos criados ou deletados do banco de dados sem trilhas de auditoria.

Nossa, isso é possível?

Sim, pessoal, claro que não é com a mesma precisão de uma trilha de auditoria, mas a boa noticia é que sim.. Esse recurso já quebra um galhão!!! ?

Em toda instalação o SQL Server disponibiliza um arquivo Trace por padrão já habilitado que pode ser consultado utilizando a função (fn_trace_gettable).

O mestre Dirceu Resende escreveu um artigo TOP do no qual ele demonstra diversos exemplos práticos de como utilizar este recurso e como é o funcionamento de toda essa estrutura.

https://www.dirceuresende.com/blog/utilizando-o-trace-padrao-do-sql-server-para-auditar-eventos-fn_trace_gettable/

Como fazer para consultar se o Trace padrão está habilitado na sua instância?

Utilize a query abaixo :

Laboratório :

Para exemplificar os testes e consultar os nossos objetos criados ou excluídos, vamos criar uma nova base e uma tabela qualquer.

Com a base TESTE_DEFAULT_TRACE criada com sucesso no ambiente , agora vamos consultar na função fn_trace_gettable, qual foi o objeto criado.

Opa, legal hein!! ?

E agora se eu apagar essa tabela, tem como saber quem foi também?

Vamos dropar o objeto TEST_TABLE_DEFAULT_TRACE

Agora vamos rodar uma consulta semelhante, porém, desta vez filtrando os objetos excluídos :

Muito legal, não é mesmo? ?

Seguem todos os eventos que podemos auditar com esse Trace padrão.

Créditos ao Dirceu por essa query mágica ? (Se estiver lendo isso, muito obrigado meu brother).

Por fim, é importante frisar que essa funcionalidade não substitui o uso de trilhas de auditoria, mais pra frente farei um artigo falando mais sobre esse recurso indispensável nos dias atuais. Também não sei dizer ao certo quanto tempo o SQL Server retém de informações nesse Trace padrão.

Mas de acordo com as informações da sys.traces na documentação oficial tudo indica que por padrão conseguimos reter 05 arquivos de até 20 MB com reciclagem (rollover) automática.

https://docs.microsoft.com/pt-br/sql/relational-databases/system-catalog-views/sys-traces-transact-sql?view=sql-server-ver16

Nm_Recurso Descrição
Max_size Limite máximo do tamanho do arquivo de rastreamento em megabytes (MB). Este valor será nulo quando o rastreamento for referente a um conjunto de linhas.
Status Status do rastreamento: 1 – ativo , 0 – inativo.
Max_files Número máximo de arquivos de substituição. Este valor será nulo se o número máximo não for definido.
Is_default 1 = rastreamento padrão.
Is_rollover 1 = a opção de substituição está habilitada.

 

E aí, conhecia esse recurso? Gostou da postagem??

Comenta aí, feedbacks são sempre bem-vindos!!!

Gustavo Larocca

Consultor SQL Server

 

 

 

 

 

4 comentários

  1. Muito bom!
    Alternativa marota essa aí!!

  2. Carlos Souza disse:

    Muito bom. Simples e muito funcional.

  3. Marcelo Aloysio disse:

    Fantástico! Queria saber como ter o mesmo recurso na pesquisa pro procedures e functions.

Deixe uma resposta

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