Como criar uma trigger de Auditoria para logar a manipulação de objetos no SQL Server

Olá pessoal,
Bom dia.

Introdução

Hoje venho trazer pra vocês um recurso muito útil na vida dos DBA’s SQL Server, tanto pra auditoria de alteração/criação/exclusão de objetos quanto para um “versionamento” de SP’s, Functions, etc, que é a utilização de triggers para logar todas as alterações a nível de DDL em objetos, inclusive sendo possível gravar a query utilizada para tal. Isso é especialmente útil no caso de objetos de programação, como Stored Procedures e Functions, onde pode-se visualizar cada alteração realizada nesses objetos.

Como um ponto adicional, adicionei uma mensagem de alerta para quando alguém criar um objeto em um database de sistema (model, master e msdb). Esse alerta pode ser incrementado para enviar um e-mail para a equipe de banco de dados além de notificar visualmente o usuário que criou o objeto, entre outros.

Caso você queira saber também sobre Auditoria e controle de logins, acesse o post Como implementar auditoria e controle de logins no SQL Server

Implementação para um database específico

Visualizar código-fonte

Para que todos os usuários tenham acesso para gravar nessa tabela, será necessário executar os comandos abaixo:

Implementação para todos os databases

A solução apresentada acima, deve ser aplicada em cada database do seu servidor em que você deseja logar as operações de DDL. No trecho de código abaixo, vou demonstrar como aplicar essa trigger em todos os databases do servidor (Server trigger).

Visualizar código-fonte

Assim como no database Trigger, para que todos os usuários tenham acesso para gravar nessa tabela, será necessário executar os comandos abaixo:

Resultados

Tabela de auditoria criada
trgAlteracao_Objetos_Final

Mensagem de alerta quando criam objetos em databases de sistema
trgAlteracao_Objeto2

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

Deixe uma resposta