triggers

Implementacion de TRIGGERS en SQL SERVER 2008


La información que se trata y almacena en una base de datos cada día cobra mas y mas importancia , así como se han debido implementar políticas y ver mas detalladamente el manejo de la información, la transparencia, fiabilidad y seguridad en una base de datos .Un punto importante en donde hay que detenerse y aplicar políticas de control, seguimiento de cambios de datos que alteran la base de datos, así respaldar y encontrar el hilo de la trayectoria desde que se conecta un usuario a una base de datos determinada, los cambios que realice y el termino de su sesión como tal usuario. Tratando así en resguardar el 100% de la integridad de la información tratada en las bases de datos, es aquí en donde entra en marcha la auditoria de base de datos.

Auditoria de las bases de datos: Consiste en el control de acceso, de actualización, de integridad y calidad de los datos.


¿Qué es la Auditoria de BD?

Es el proceso que permite medir, asegurar, demostrar, monitorear y registrar los accesos a la información almacenada en la base de datos incluyendo la capacidad de determinar:


* Quién accede a los datos
* Cuándo se accedió a los datos
* Desde qué tipo de dispositivo/aplicación
* Desde que ubicación en la Red
* Cuál fue la sentencia SQL ejecutada
* Cuál fue el efecto del acceso a la base de datos


en esto encontramos utilidad en los TRIGGERS.

AUDITORIA EN SQL SERVER 2008


Ventajas y desventajas de las técnicas utilizadas para la auditoria en base de datos.

triggers



DDL Trigger: Controlo quien cambia la definición de una tabla. Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP de Transact-SQL, y a determinados procedimientos almacenados del sistema que ejecutan operaciones de tipo DDL.

DML Trigger: Controla quien realiza cada INSERT,,UPDATE o DELETE de una tabla o vista.

SQL Profiler con filtros: Controla las consultas que realiza un usuario en una base de datos


En conclusión para realizar una buena auditoria habría que mezclar las técnicas y obtener logs ricos en información detallada.

SQL SERVER 2008 cuenta con una suite para la auditoria, en la que se puede recoger cualquier evento que ocurra en el servidor o en una base de datos en concreto agregando los filtros que necesite con una única herramienta: La auditoria.

-Ahora manos a la obra.

vista de mi base de datos biblioteka con las tablas a trabajar : USUARIOS Y audit_usu

informacion


vista de mi base de datos biblioteka con la tabla USUARIOS, en donde se crea el triggers.
-posicionarse en tabla a auditar(en mi caso biblioteka)->triggers->new trigger.

datos



Ejemplo de auditoria basada en DML Trigger

Este trigger busca el auditar una tabla de una base de datos resguardando los datos auditados en otra tabla en la misma base de datos añadiéndole datos relevantes como el usuario que esta interviniendo en la base de datos y la fecha/hora exacta en la que ocurre el suceso.

usuario





En este ya se creo un trigger llamado nuevad_usu en la tabla USUARIOS de la base de datos biblioteka
Además de declaración de variables este es un triggers de tipo after, o sea se ejecuta después de un INSERT

Con este trrigers buscamos auditar la base de datos biblioteka, específicamente la tabla USUARIOS, el trigger se ejecutara después de que haya ocurrido un INSERT en la tabla USUARIOS, almacenando los datos en otra tabla llamada audit._usu en donde además especificamos que el triggers mismo ingrese la fecha y hora y el usuario que realizo el cambio, con esto buscamos auditar que usuario cometió un insert, cuando y a que hora


tabla



1º selecciono todos los datos de la tabla USUARIOS.
2º ejecuto la sentencia SQL.
3º como vemos el resultado muestra la tabla completamente vacía.

Ahora procedemos a rellenar campos y ver como actúa la auditoria de esta tabla.

auditoria


1º insertando datos a mi tabla.
2º ejecuto la sentencia SQL.
3º 1 fila afectada en la tabla.

dml trigger



1º selecciono mis dos tablas, las audit._usu y USUARIOS para mostrar los datos en ellas.
2º ejecuto esta sentencia SQL.
3º muestra las tablas, una (la de arriba) es la tabla que guarda la auditoria
En orden los datos que ingrese en la tabla auditada USUARIOS.

Vemos que muestra el nombre, código la fecha y hora exacta de la inserción y el usuario del sistema que lo ingreso.


Los triggers nos sirven para auditar una base de datos o un servidor, registrar movimientos para lograr una mayor seguridad dentro de la base de datos, la auditoria a una base de datos abarca un todo desde el modelo conceptual hasta la seguridad de los datos, en esta auditoria se busco demostrar como registrar y darle seguimiento a un usuario que realiza cambios en la base de datos.

ademas de esto al instalar sql server 2008 Enterprise, podemos auditar una base de datos por medio de SQLAUDIT que es la forma mas amigable graficamente para poder lograr los objetivos de auditoria de la bas e de datos.


con esto termino el port de triggers, si necesitan ayuda o ejemplos de SQLAUDIT me dicen y los subo para que les quede mas clrao y como siempre estare atento a sus dudas y comentarios, gracias!!


3 comentarios - triggers

@Abloos
me resulto util je

@diodzo
vale maestro por la info pero si sabes las ventajas y desventajas dimelas +5