¿Qué pasaría si se modificara una clave primaria o se actualizaran los permisos de un procedimiento almacenado sin que usted lo supiera? El seguimiento de SQL Server solo con la captura de datos de cambios (CDC) no es suficiente para que esté al tanto de los cambios en sus bases de datos críticas. De hecho, sin un seguimiento de cambios de SQL Server confiable y eficiente, simplemente no puede controlar lo que está sucediendo en sus servidores SQL.
Seguimiento de cambios nativo en SQL Server
SQL Server utiliza un mecanismo de seguimiento síncrono, lo que significa que los cambios se registran una vez que se han confirmado los cambios en el Lenguaje de manipulación de datos (DML). Las capacidades de seguimiento de cambios de SQL Server que ofrecen las herramientas nativas proporcionan algunas funciones de seguimiento de cambios; por ejemplo, puede usar el seguimiento de cambios para ver quién eliminó qué tablas o qué filas se modificaron. Pero tendrá que escribir un conjunto de consultas en Transact-SQL para obtener información de seguimiento de cambios más detallada, como detalles sobre datos modificados, columnas modificadas o tablas creadas por el usuario, y esta tarea puede devorar fácilmente su valioso tiempo. Además de eso, habilitar el seguimiento de cambios puede llenar rápidamente su servidor, por lo que debe ejecutar limpieza constantemente para evitar quedarse sin espacio en disco, lo que haría que el rendimiento y la disponibilidad se vean afectados.
Para usar el seguimiento de cambios de SQL Server, debe habilitar el seguimiento de cambios en dos niveles anidados: seguimiento de cambios de base de datos y seguimiento de cambios de tabla.
Habilitar el seguimiento de cambios para una base de datos
Para que el seguimiento de cambios funcione, la base de datos debe tener al menos el nivel de compatibilidad de SQL Server 2005. Puede determinar el número de versión de la base de datos del servidor ejecutando la consulta «SELECCIONAR @@VERSIÓN». Debe activar el seguimiento de cambios para cada base de datos individualmente.
Para habilitar el seguimiento de cambios a nivel de base de datos, puede usar SQL Server Management Studio o ejecutar la siguiente consulta T-SQL:
ALTER DATABASE Accounting2020
SET CHANGE_TRACKING = ON
(RETENCIÓN DE CAMBIOS = 3 DÍAS, LIMPIEZA AUTOMÁTICA = ON)
Una vez habilitado el seguimiento de cambios, puede establecer un período de retención diferente modificando los parámetros CHANGE_RETENTION y AUTO_CLEANUP.
Habilitar el seguimiento de cambios para una Tabla
Al igual que con las bases de datos, el seguimiento de los cambios en las tablas requiere habilitar el seguimiento en cada tabla por separado. Una vez más, puede hacer esto en SQL Server Management Studio o con una consulta como este ejemplo:
ALTER TABLE Contracts
HABILITA CHANGE_TRACKING
CON (TRACK_COLUMNS_UPDATED = ON)
Una vez que el seguimiento de cambios está habilitado para una tabla, información sobre todas las filas cambiadas por instrucciones SQL comunes (SELECT, INSERT, UPDATE, DELETE, etc.).) se almacena internamente.
El parámetro TRACK_COLUMNS_UPDATED se utiliza para activar o desactivar el seguimiento de cambios para columnas. Si está activado, SQL Server almacenará información adicional sobre qué columnas se actualizaron. Sin embargo, dado que la información de la columna de seguimiento se suma a la sobrecarga de almacenamiento, esta opción está deshabilitada de forma predeterminada y se recomienda mantenerla deshabilitada para todas las aplicaciones que no requieren datos históricos.
Seguimiento de cambios fácil y eficiente con Netwrix Auditor
A diferencia de las herramientas nativas de seguimiento de cambios que requieren escribir consultas y rastrear manualmente los datos, Netwrix Auditor para SQL Server proporciona paneles e informes prediseñados que le permiten detectar fácilmente los cambios y ver todos los detalles críticos. Por ejemplo, puede ver que una columna que se eliminó o un rol de usuario se modificó, junto con los valores antes y después de cada cambio. La búsqueda interactiva le ayuda a investigar rápidamente cambios sospechosos para evitar la indisponibilidad de la base de datos y otras interrupciones.
Netwrix Auditor también hace que sea fácil vigilar de cerca los recursos clave, como los servidores con más cambios y los usuarios que hacen más modificaciones. Las suscripciones de informes lo mantienen actualizado automáticamente en el horario que elija. Y ya no hay necesidad de preocuparse constantemente por la limpieza porque el almacenamiento de dos niveles de Netwrix mantiene sus datos de cambio de SQL Server consolidados de manera rentable durante más de 10 años, al tiempo que garantiza un acceso rápido y seguro a ellos en cualquier momento. Aún mejor, Netwrix Auditor utiliza un mecanismo de auditoría no intrusivo, por lo que nunca degradará el rendimiento de la base de datos.