Este documento describe cómo crear bitácoras en PostgreSQL para registrar acciones realizadas sobre tablas. Explica cómo crear una tabla de bitácora, una secuencia, una función y un disparador para auditar las inserciones, eliminaciones y actualizaciones en las tablas Ciudad y País. Luego muestra ejemplos de inserciones, eliminaciones y actualizaciones en estas tablas y cómo quedan registradas en las respectivas tablas de bitácora. Concluye explicando que las bitácoras son útiles para resolver problemas o recuperar datos elimin
Este documento describe cómo crear bitácoras en PostgreSQL para registrar acciones realizadas sobre tablas. Explica cómo crear una tabla de bitácora, una secuencia, una función y un disparador para auditar las inserciones, eliminaciones y actualizaciones en las tablas Ciudad y País. Luego muestra ejemplos de inserciones, eliminaciones y actualizaciones en estas tablas y cómo quedan registradas en las respectivas tablas de bitácora. Concluye explicando que las bitácoras son útiles para resolver problemas o recuperar datos elimin
Este documento describe cómo crear bitácoras en PostgreSQL para registrar acciones realizadas sobre tablas. Explica cómo crear una tabla de bitácora, una secuencia, una función y un disparador para auditar las inserciones, eliminaciones y actualizaciones en las tablas Ciudad y País. Luego muestra ejemplos de inserciones, eliminaciones y actualizaciones en estas tablas y cómo quedan registradas en las respectivas tablas de bitácora. Concluye explicando que las bitácoras son útiles para resolver problemas o recuperar datos elimin
6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
R E P O R T E BITCORAS EN POSTGRESQL
La importancia de las bitcoras es la de recuperar informacin ante incidentes de seguridad, deteccin de comportamiento inusual, informacin para resolver problemas, evidencia legal, es de gran ayuda en las tareas de cmputo forense. En relacin al tema, las bitcoras (archivos LOG) ayudan al mantenimiento de las tablas de una BD ante acciones de insercin, modificacin o eliminacin de tuplas en cualquier relacin. Esto, con el fin de tener un control de los cambios que se hacen en la BD por los diferentes usuarios que acceden al motor del sistema.
A continuacin, se mostrar un ejemplo claro de creacin de bitcoras a travs el uso de funciones y triggers en el SGBD PostgreSQL. En primera instancia, se crear una tabla bitcora de la relacin Ciudad llamada Auditoria_Ciudad. Dicha tabla, contendr un campo que ser la clave primaria llamado CodBitac de tipo entero, un campo llamado Accin de tipo cadena que contendr el tipo de accin que el usuario realice (Insercin, actualizacin, eliminacin), un campo de tipo cadena llamado FechaRegistro que contendr la fecha en la que se realiz la accin, un campo llamado Usuario de tipo cadena que almacenar el nombre del usuario que est utilizando la BD en ese momento y, finalmente, todos los datos de la tabla Ciudad. En la imagen de abajo se muestra el ejemplo de la creacin de la bitcora. 6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
NOTA: Como la bitcora no se utilizar para almacenar datos manualmente, en conveniente crear una secuencia que servir para el campo clave de la misma, en la cual, al almacenar datos se inserte automticamente un valor en el campo clave por cada tupla que guarde.
A continuacin, procedemos crear dicha secuencia llamada Auditoria_Ciudad_CodBitac_seq.
6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
Enseguida, crearemos una funcin llamada Procesar_Bitac(). Esta funcin, nos permitir enlazar las acciones que el usuario realice sobre la relacin Ciudad en la Bitcora Auditoria_Ciudad.
A continuacin, procedemos a crear el Trigger cuyo propsito es llamar a la funcin previamente creada. Cabe destacar que, los disparadores se ejecutan automticamente en cualquier momento cuando se cumple una condicin establecida al realizar una operacin. 6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
Enseguida creamos el Trigger llamado Auditoria_Ciudad_Trigger.
Una vez terminado los pasos anteriores, nos centraremos en la tabla Ciudad y ejecutamos una consulta realizando una de las 3 acciones antes mencionadas para verificar el uso de la bitcora. En el primer ejemplo, realizamos una consulta de eliminacin como se muestra a continuacin. En esta imagen, se puede apreciar la consulta de Delete que cumple la condicin de eliminar todas las tuplas que tengan en el campo Cdigo_pais el valor de USA.
Enseguida, verificamos en la bitcora los resultados de la accin previamente ejecutada, a travs de la instruccin: Select * From Auditoria_Ciudad;
6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
En esta imagen se muestra una captura de la bitcora ejecutada en phpPgAdmin.
Como se puede observar, en la bitcora se registraron 274 tuplas de eliminacin por el usuario Postgres el da 30 de abril del 2014 a las 8:07 pm hrs.
De esta manera podemos decir, que la bitcora funciona como un respaldo de la informacin de las acciones hechas por algn usuario en una relacin determinada. As pues, en caso de que se requiera recuperar alguna tupla tras un accidente de Delete, se puede consultar la bitcora para hacer el anlisis correspondiente. 6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
En el segundo ejemplo, probaremos la bitcora al ejecutar una accin de insercin.
Enseguida, verificamos en la bitcora los resultados de la accin previamente ejecutada, a travs de la instruccin: Select * From Auditoria_Ciudad;
En esta imagen se muestra una captura de la bitcora ejecutada en phpPgAdmin.
Como se puede observar, en la bitcora se registr 1 tupla de insercin por el usuario Postgres el da 01 de mayo del 2014 a las 3:18 pm hrs.
6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
Ejemplo de bitcora de la relacin Pas:
Creacin de la bitcora
6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
Creacin de la funcin
Creacin del Trigger
6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
A continuacin, realizamos un evento de insercin en la tabla Pais:
Enseguida verificamos el registro de este nuevo evento en la bitcora correspondiente, a travs de la instruccin: Select * From Auditoria_Pais;
En la imagen podemos observar que se realiz una insercin en la tabla Pais el da 01 de mayo del 2014 a las 5:38 pm por el usuario Postgres. 6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
Ahora probaremos con un evento de actualizacin cambiando el valor en el campo Superficie.
A continuacin, verificamos el registro de este nuevo evento en la bitcora correspondiente, a travs de la instruccin: Select * From Auditoria_Pais;
En la imagen podemos observar que se realiz una modificacin en la tabla Pais el da 01 de mayo del 2014 a las 5:57 pm por el usuario Postgres. 6 de mayo de 2014 ADMN. DE BDs | UNIDAD IV OPERACIN Y MANTENIBILIDAD
En conclusin, las bitcoras son tablas que ayudan para resolver problemas o accidentes cuando el usuario o el administrador de la BD ejecutan eventos; ya sean de insercin, actualizacin o eliminacin de informacin en una relacin en particular. Por ejemplo, recuperar los datos de una(s) tupla(s) eliminada(s) accidentalmente, ya sean por una condicin del evento mal escrito; tambin para saber qu datos han sido modificados e insertados y, conocer quin lo hizo y cundo. Sin embargo, no slo se usan bitcoras para estos 3 tipos de acciones, tambin se pueden registrar consultas (a travs del evento Select), siempre y cuando se establezca esta regla dentro de una funcin, en este caso; o bien, dentro de un trigger. Por otra parte, tambin se pueden definir otros campos alternativos que ayudan a tener un control ms especfico de las acciones que se realizan. Por ejemplo, registrar en la bitcora el nombre de la mquina, el estado y la ip de sta. Todas estas alternativas pueden ser establecidas dentro de una funcin o trigger si el DBA as lo desea.