2009-04-27 12 views
13

Busco a cambiar nuestro proceso de auditoría para nuestra bases de datos de SQL Server 2005 y me encontré con captura de datos modificados en SQL Server 2008.Auditoría de datos de SQL Server cambia

Esto parece ser una buena idea, y estoy tentado de probarlo, pero antes de hacerlo, ¿alguien lo usó en un entorno comercial y cuáles son tus pensamientos?

Me di cuenta cuando estaba leyendo sobre CDC en la ayuda de MS, dijo que los datos de auditoría generalmente se mantendrían durante un par de días. Eso no es posible aquí, me gustaría guardar los datos indefinidamente, ¿alguien sabe de problemas con este enfoque?

Si esta no es una buena solución por razones que no conozco, tenga otras soluciones para auditar los cambios de datos. Me encanta utilizar un sistema que pueda implementarse en todas las tablas que desee.

Estoy detrás de la información básica: "Antes, Después, Quién Por, Cuándo" para cualquier cambio.

Respuesta

9

El CDC debería ser solo un medio para un fin en mi opinión. Implementé soluciones de seguimiento de auditoría en el pasado y han involucrado el uso de Triggers. Esto llegó a ser muy complicado y de alto rendimiento para bases de datos altamente transaccionales.

Lo que el CDC le brinda es la capacidad de registrar los datos de auditoría sin el uso de desencadenantes, pero aún necesita un medio para tomar esos datos en una tabla permanente. Esto se puede hacer con una tabla espejo para cada tabla a ser auditada o una sola tabla que rastrea todos los cambios en todas las tablas (he hecho lo último).

Estos son algunos enlaces con información adicional sobre cómo se ha hecho utilizando disparadores:
SQL Audit Trail
sql-server-history-table-populate-through-sp-or-trigger

He aquí una solución de seguimiento de auditoría de código abierto que utiliza LINQ: DoddleAudit

+0

veo, acabo de leer un poco más sobre el CDC y entiendo lo que estás diciendo. Parece que los CDC se benefician de ser asincrónicos. Me gusta bastante su idea de la tabla única para realizar un seguimiento de todos los cambios, sin embargo, me parece que con "bases de datos altamente transaccionales" esta tabla podría ser muy grande, muy rápido. – MrEdmundo

+0

Oye, finalmente me di la vuelta para echar un vistazo a lo que estabas diciendo. Me preguntaba cómo se hace un seguimiento de quién hizo los cambios en su sistema? En principio, CDC parece ser bastante fácil de configurar y proporciona algunas buenas funcionalidades. – MrEdmundo

+0

En mi configuración, cada tabla tiene 4 columnas adicionales: CreatedDate, CreatedBy, UpdatedDate, UpdatedBy. Lleno las últimas 2 columnas con el nombre de usuario/fecha en mis declaraciones de actualización de sql. Utilizo eso para determinar quién cambió qué. –

0

Puede editar el trabajo del servidor Sql que elimina los cambios capturados después de dos días. También puede extender este tiempo de limpieza según su conveniencia o hacerlo permanente.

0

Estoy usando los scripts this, puede definir cuáles son las tablas que desea que tengan la auditoría o toda la tabla definida en su base de datos. Además, tvf para visualización de un solo registro de la historia. Verifique el enlace, para más detalles.

6

bastante tarde, pero espero que sea útil para otros lectores ...

A continuación se presentan varias técnicas diferentes para la auditoría, con sus pros y contras. No hay una solución "correcta" que se ajuste a todos. Depende de los requisitos y del sistema que se está auditando.

disparadores

  • Ventajas: relativamente fácil de implementar, una gran flexibilidad en lo que se auditado y cómo se almacenan los datos de auditoría porque usted tiene el control total
  • Desventajas: Se pone desordenado cuando tienes muchas mesas y más disparadores. El mantenimiento puede ser pesado a menos que haya alguna herramienta de terceros para ayudar. Además, dependiendo de la base de datos, puede causar un impacto en el rendimiento.

CDC

  • Ventajas: Muy fácil de implementar, de forma nativa con el apoyo
  • Desventajas: Sólo disponible en edición empresarial, no es muy robusta - si cambia el esquema de los datos se perderá. Yo no recomendaría esto para mantener una pista de auditoría a largo plazo

huellas

  • Ventajas: una gran flexibilidad en lo que se está auditado. Incluso las declaraciones seleccionadas pueden ser auditadas.
  • Desventajas: Debería crear una aplicación por separado para analizar los archivos de seguimiento y recopilar información útil de estos.

lectura de registro de transacciones

  • Ventajas: todo lo que tiene que hacer es poner la base de datos en modo de recuperación completa y toda la información se almacenarán en registro de transacciones
  • Desventajas : Necesita un lector de registro de terceros para leer esto de manera efectiva

He trabajado con varias herramientas de auditoría de ApexSQL pero también son buenas herramientas de Idera (gerente de cumplimiento) y software Krell (auditoría omni)

ApexSQL Audit - Gatillo herramienta de auditoría basada. Genera y gestiona la auditoría desencadena

ApexSQL Log - Permite la auditoría mediante la lectura de registro de transacciones

Cuestiones relacionadas