SQL Server: Auditoría de datos personalizada mediante triggers
Los triggers o desencadenadores son disparadores que saltan cuando realizamos la acción o evento al que van asociados. En MS SQL Server, además de los triggers clásicos relacionados con acciones DML (insert, update, delete) que se ejecutan en su lugar (instead of) y después (after triggers), desde SQL Server 2008 (por lo menos) existe otro tipo que son los triggers asociados a acciones que se producen por consultas DDL. Este segundo tipo de trigger está más pensado para labores administrativas como la propia auditoria, para el control de cierto tipo de operaciones e incluso evitar esos cambios.
Por el motivo que sea, un día puede que cambiamos de trabajo o de funciones dentro de nuestra empresa y de repente heredemos un entorno de base de datos Microsoft SQL Server con un servidor o clúster de bases de datos para que nos encarguemos de él. Antes de empezar a cambiar cosas, es totalmente necesario conocer el uso que se hace de la base de datos, la criticidad de las aplicaciones que la usan, las dependencias entre ellas etc... A continuación una lista de las primeras cuatro tareas que podríamos llevar a cabo para empezar a hacerlo nuestro.
El proceso de migración de un sistema gestor de bases de datos Oracle a otro con Microsoft Sql Server puede llegar a ser un trabajo muy tedioso si lo hacemos a mano. Tiempo atrás quizás no había más remedio que empezar migrando la estructura para hacer luego cargas manuales por tablas etc. Una manera de hacer podría ser haciendo un script PL-SQL de la estructura en Oracle para modificarlo y pasarlo a T-SQL para SQL Server. Con el paso del tiempo han ido in-crescendo aplicaciones de pago y gratuitas que ya hacen gran parte de nuestro trabajo. MS SQL Server Migration Assistant es una de ellas totalmente gratuita, creada por Microsoft que nos permite hacer gran parte del trabajo.
En el post anterior explicaba como examinar el registro de transacciones de una base de datos para ver poder ver el detalle de los cambios realizados en la misma, ya sean consultas DML como DDL. En este post se explica como usar la misma herramienta en otro caso práctico para poder detectar en que momento se han borrado unos datos y como recuperarlos haciendo una restauración point-in_time de la base de datos para poder copiarlos de nuevo.
En un momento dado, alguien puede modificar los datos de una tabla sensible. En otra ocasión, algún despistado puede borrar una tabla, o registros de otra tabla que no debería. Si ese "alguien" se da cuenta y nos lo comenta no pasa nada, como dba seguro que tenemos alguna copia de respaldo para poder recuperar esos datos. El problema lo podemos tener con tablas que no se usan apenas o que alguien ha borrado y no ha confesado. Para poder empezar nuestra búsqueda necesitamos habilitado el seguimiento de cambios. En este post veremos como examinar el contenido del log con una base de datos de prueba..
Bids Helper es un add-in con funcionalidades que complementa y añade nuevas funcionalidades para el desarrollo en SQL Server 2005, 2008, 2008 R2, 2012 usando BI Development Studio. Es un complemento de libre descarga que se mantiene vivo al que se le continúan añadiendo nuevas posibilidades. Su posibilidad de uso abarca desde proyectos de Analysis Services con funcionalidades básicas, proyectos de Integration Services y en menor medida algo de Reporting Services.
Las vistas pueden ser una herramienta perfecta para simplificar consultas que unen distintas tablas, permiten abstenerse de la estructura origen y simplificar si hace falta la estructura saliente. También nos pueden servir como un mecanismo de seguridad que limitará el acceso de los usuarios a datos no deseados de las tablas base. Con MS SQL Server, Microsoft ha ido un paso más allá y permite crear un nuevo tipo de vistas llamado vista indizada.
Mantenerse actualizado es bueno y de vez en cuando va bien probar cosas nuevas que nos puedan permitir mejorar en algún aspecto de nuestro día a día. De vez en cuando me gusta ir viendo nuevas herramientas y tratar de seguir siendo proactivo para hacer mejor mi trabajo o al menos más cómodo. Anteriormente comente en otro post la existencia de un complemento de Apex llamado Refactor que permitía refactorizar para codificar de forma más clara y/o automática. En este post comento un poco el funcionamiento de una herramienta que se llama SQL Sentry Plan Explorer.
El recopilador de datos es una parte de MS Sql Server que permite recopilar diferentes tipos de datos y métricas sobre el rendimiento y desempeño de la base de datos. Se incluye desde la versión 2008 de SqlServer hasta la 2014 y esta formado por un conjunto de trabajos que se ejecutan mediante el agente de Sql Server periódicamente o de forma continua. Su configuración esta formada por dos sencillos pasos mediante asistente. Una vez finalizados ya podemos explotar su información mediante los informes incluidos.