2
Como criar uma trigger de Auditoria para logar a manipulação de objetos no SQL Server 18 de julho de 2015 body_of_rays 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: 1 2 3 USE [Auditoria] GO GRANT CONNECT TO [guest]

Como Criar Uma Trigger de Auditoria Para Logar a Manipulação de Objetos No SQL Server

Embed Size (px)

DESCRIPTION

Como Criar Uma Trigger de Auditoria

Citation preview

Page 1: Como Criar Uma Trigger de Auditoria Para Logar a Manipulação de Objetos No SQL Server

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

Olá pessoal,

Bom dia.

IntroduçãoHoje 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íficoVisualizar código-fonte

Para que todos os usuários tenham acesso para gravar nessa tabela, será

necessário executar os comandos abaixo:1234

USE [Auditoria]GOGRANT CONNECT TO [guest]GRANT INSERT ON dbo.Alteracao_Objetos TO PUBLIC

Implementação para todos os databasesA 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).

Page 2: Como Criar Uma Trigger de Auditoria Para Logar a Manipulação de Objetos No SQL Server

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:

1234

USE [Auditoria]GOGRANT CONNECT TO [guest]GRANT INSERT ON dbo.Alteracao_Objetos TO PUBLIC

ResultadosTabela de auditoria criada

Mensagem de alerta quando criam objetos em databases de

sistema