Trigger de auditoría

04/12/2003 - 20:58 por Luz | Informe spam
¿Cómo puedo crear un trigger que me indique qué usuario
está modificando una tabla?, ¿Es posible que también
obtenga su dirección IP?

¿Se puede almacenar la información en una tabla?

Gracias de antemano
Luz

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
04/12/2003 - 21:21 | Informe spam
Luz como te va? espero que bien!!

Bueno todo lo que indicas se puede (no se el tema de la IP)

La cosa seria algo asi como:

Podrias crear una tabla por ej que contenga como campos:

Fecha
Userid
Tabla_modificada

esto es solo un ej nomas

bien y crearte un triger para cada tabla algo asi como

CREATE TRIGGER AUDITORIA ON tutabla for insert,update
as

insert into tabla_auditoria (fecha,userid,tabla_modificada) values
(getdate(),suser_sname(),'tu tabla')



Este ej es muy burdo!! pero por ej podrias crear para cada tabla una misma
de auditoria y ahi poner los campos q queres auditar!! por ej quizas en una
tabla de Articulos te interese auditar quien cambio un precio

Veamos entonces de ser asi como se hace:

Tabla auditoria_articulos

campos:

Articulo
fecha
precio_actual
nuevo_precio
usuario

create trigger auditoria on tabla_articulo for update as

if update(precio_unitario)
begin
insert into tabla_auditoria_articulos
(articulo,fecha,precio_actual,nuevo_precio,usuario)
select
inserted.codigo_articulo,getdate(),deleted.precio_unitario,inserted.precio_u
nitario,
suser_sname() FROM inserted inner join deleted on
inserted.codigo_articulo = deleted.codigo_articulo
end


seria algo asi!! (no lo probe en SQL porque aca no tengo uno)

Un saludo





Maximiliano Damian Accotto
"Luz" escribió en el mensaje
news:029e01c3baa0$edc21880$
¿Cómo puedo crear un trigger que me indique qué usuario
está modificando una tabla?, ¿Es posible que también
obtenga su dirección IP?

¿Se puede almacenar la información en una tabla?

Gracias de antemano
Luz
Respuesta Responder a este mensaje
#2 Miguel Egea
04/12/2003 - 22:23 | Informe spam
La ip no, pero la mac-adrress si, está en la tabla master..sysprocesses y
bastaría con filtar where spid=@@spid,


=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==
"Maximiliano Damian Accotto" escribió
en el mensaje news:
Luz como te va? espero que bien!!

Bueno todo lo que indicas se puede (no se el tema de la IP)

La cosa seria algo asi como:

Podrias crear una tabla por ej que contenga como campos:

Fecha
Userid
Tabla_modificada

esto es solo un ej nomas

bien y crearte un triger para cada tabla algo asi como

CREATE TRIGGER AUDITORIA ON tutabla for insert,update
as

insert into tabla_auditoria (fecha,userid,tabla_modificada) values
(getdate(),suser_sname(),'tu tabla')



Este ej es muy burdo!! pero por ej podrias crear para cada tabla una misma
de auditoria y ahi poner los campos q queres auditar!! por ej quizas en


una
tabla de Articulos te interese auditar quien cambio un precio

Veamos entonces de ser asi como se hace:

Tabla auditoria_articulos

campos:

Articulo
fecha
precio_actual
nuevo_precio
usuario

create trigger auditoria on tabla_articulo for update as

if update(precio_unitario)
begin
insert into tabla_auditoria_articulos
(articulo,fecha,precio_actual,nuevo_precio,usuario)
select



inserted.codigo_articulo,getdate(),deleted.precio_unitario,inserted.precio_u
nitario,
suser_sname() FROM inserted inner join deleted on
inserted.codigo_articulo = deleted.codigo_articulo
end


seria algo asi!! (no lo probe en SQL porque aca no tengo uno)

Un saludo





Maximiliano Damian Accotto
"Luz" escribió en el mensaje
news:029e01c3baa0$edc21880$
¿Cómo puedo crear un trigger que me indique qué usuario
está modificando una tabla?, ¿Es posible que también
obtenga su dirección IP?

¿Se puede almacenar la información en una tabla?

Gracias de antemano
Luz


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida