Con DDL Triggers apartir de SQL Server 2005 podemos auditar todos las operaciones de DDL a la BD
USE pruebas
--La tabla de auditoria
Create Table DDL_Auditoria(
Id int Not Null identity,
FechaEvento datetime not null,
TipoEvento SYSNAME not null,
UsuarioEvento SYSNAME not null,
NombreObjeto SYSNAME not null,
NombreObjetoObjetivo SYSNAME not null
)
--disparador
Create TRIGGER DDL_AuditoriaDML ON DATABASE FOR DDL_DATABASE_LEVEL_EVENTS
As
Declare @EV as XML
SET @EV = EVENTDATA()
INSERT INTO DDL_Auditoria
VALUES(
CAST(@EV.query('data(//PostTime)') as varchar(23)),
CAST(@EV.query('data(//EventType)') as Sysname),
CAST(@EV.query('data(//LoginName)') as Sysname),
CAST(@EV.query('data(//ObjectName)') as Sysname),
CAST(@EV.query('data(//TargetObjectName)') as Sysname)
)
go
--Probamos el disparador con 2 operaciones DDL y consultamos las entradas de auditoria en nuestra tabla
Create Table TablaNueva (Cve int)
go
Alter Table TablaNueva ADD Col2 int
go
Select * FROM DDL_Auditoria
go
No hay comentarios.:
Publicar un comentario