6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN – OPERACIÓN Y MANTENIBILIDAD
CARRERA:
ING. EN SISTEMAS COMPUTACIONALES SEMESTRE :
6
to
GRUPO: “A”
ASIGNATURA: ASIGNATURA:
ADMINISTRACIÓN DE BASES DE DATOS
DOCENTE: DOCENTE:
L.I. LUÍS A. BALAM MUKUL
ALUMNOS: ALUMNOS:
MARIO A. RAMIREZ ARANDA LUÍS E. NOH BALAM
FECHA DE ENTREGA: ENTREGA:
06/MAYO/2014
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
REPORTE
BITÁCORAS EN POSTGRESQL La importancia de las bitácoras es la de recuperar información ante incidentes de seguridad, detección de comportamiento inusual, información para resolver problemas, evidencia legal, es de gran ayuda en las tareas de cómputo forense. En relación al tema, las bitácoras (archivos LOG) ayudan al mantenimiento de las tablas de una BD ante acciones de inserción, modificación o eliminación de tuplas en cualquier relación. 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 continuación, se mostrará un ejemplo claro de creación de bitácoras a través el uso de funciones y triggers en el SGBD PostgreSQL. En primera instancia, se creará una tabla bitácora de la relación Ciudad llamada
Auditoria_Ciudad. Dicha tabla, contendrá un campo que será la clave primaria llamado CodBitac de tipo entero, un campo llamado Acción de tipo cadena que contendrá el tipo
de acción que el usuario realice (Inserción, actualización, eliminación), un campo de tipo cadena llamado FechaRegistro que contendrá la fecha en la que se realizó la acción, 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 creación de la bitácora.
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
NOTA: Como la bitácora 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 automáticamente un valor en el campo clave por cada tupla que guarde.
A continuación, procedemos crear dicha secuencia llamada Auditoria_Ciudad_CodBitac_seq.
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
Enseguida, crearemos una función llamada Procesar_Bitac(). Esta función, nos permitirá enlazar las acciones que el usuario realice sobre la relación Ciudad en la Bitácora Auditoria_Ciudad.
A continuación, procedemos a crear el Trigger cuyo propósito es llamar a la función previamente creada. Cabe destacar que, los disparadores se ejecutan automáticamente en cualquier momento cuando se cumple una condición establecida al realizar una operación.
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN 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 bitácora. En el primer ejemplo, realizamos una consulta de eliminación como se muestra a continuación. En
esta
imagen,
se
puede
apreciar la consulta de Delete que cumple la condición de eliminar todas las tuplas que tengan en el campo Código_pais el valor de USA.
Enseguida, verificamos en la bitácora los resultados de la acción previamente ejecutada, a través de la instrucción: Select * From Auditoria_Ciudad;
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD En esta imagen se muestra una captura de la bitácora ejecutada en phpPgAdmin. Como se puede observar, en la bitácora se registraron 274 tuplas de eliminación por el usuario Postgres el día 30 de abril del 2014 a las 8:07 pm hrs.
De esta manera podemos decir,
que
la
bitácora
funciona como un respaldo de la información de las acciones hechas por algún usuario
en
una
relación
determinada. Así pues, en caso de que se requiera recuperar alguna tupla tras un accidente de Delete, se puede consultar la bitácora para hacer el análisis correspondiente.
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
En el segundo ejemplo, probaremos la bitácora al ejecutar una acción de inserción.
Enseguida, verificamos en la bitácora los resultados de la acción previamente ejecutada, a través de la instrucción: Select * From Auditoria_Ciudad; En esta imagen se muestra una captura de la bitácora ejecutada en phpPgAdmin. Como se puede observar, en la bitácora se registró 1 tupla de inserción por el usuario Postgres el día 01 de mayo del 2014 a las 3:18 pm hrs.
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
Ejemplo de bitácora de la relación País:
Creación de la bitácora
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
Creación de la función
Creación del Trigger
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
A continuación, realizamos un evento de inserción en la tabla Pais:
Enseguida verificamos el registro de este nuevo e vento en la bitácora correspondiente, a través de la instrucción: Select * From Auditoria_Pais;
En la imagen podemos observar que se realizó una inserción en la tabla Pais el día 01 de mayo del 2014 a las 5:38 pm por el usuario Postgres.
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
Ahora probaremos con un evento de actualización cambiando el valor en el campoSuperficie.
A continuación, verificamos el registro de este nuevo evento en la bitácora correspondiente, a través de la instrucción: Select * From Auditoria_Pais;
En la imagen podemos observar que se realizó una modificación en la tabla Pais el día 01 de mayo del 2014 a las 5:57 pm por el usuario Postgres.
6 de mayo de 2014
ADMÓN. DE BD’s | UNIDAD IV – OPERACIÓN Y MANTENIBILIDAD
En conclusión, las bitácoras son tablas que ayudan para resolver problemas o accidentes cuando el usuario o el administrador de la BD ejecutan eventos; ya sean de inserción, actualización o eliminación de información en una relación en particular. Por ejemplo, recuperar los datos de una(s) tupla(s) eliminada(s) accidentalmente, ya sean por una condición del evento mal escrito; también para saber qué datos han sido modificados e insertados y, conocer quién lo hizo y cuándo. Sin embargo, no sólo se usan bitácoras para estos 3 tipos de acciones, también se pueden registrar consultas (a través del evento Select), siempre y cuando se establezca esta regla dentro de una función, en este caso; o bien, dentro de un trigger. Por otra parte, también se pueden definir otros campos alternativos que ayudan a tener un control más específico de las acciones que se realizan. Por ejemplo, registrar en la bitácora el nombre de la máquina, el estado y la ip de ésta. Todas estas alternativas pueden ser establecidas dentro de una función o trigger si el DBA así lo desea.