¿Qué es una tabla de auditoría?


24

¿Qué son las tablas de auditoría?

¿Cómo son útiles?

Me los encontré leyendo este artículo .


2
Son solo mesas regulares. Es cómo los usa y qué pone en ellos lo que los convierte en "tablas de auditoría".
Nick Chammas

1
No son lo mismo. Tiene una tabla de auditoría, que es independiente de la tabla que está auditando. Entonces tendrías dos mesas NormalTabley AuditNormalTable.
Thomas Stringer

1
Matt, Shark tiene tu respuesta al respecto. @Shark, estaba enfatizando el punto de que una tabla de auditoría no es una construcción de base de datos especial (ya que tuve la impresión de que el OP puede creer eso). Es solo otra tabla que el desarrollador construye y usa para rastrear cierta información.
Nick Chammas

@ NickChammas Oh, absolutamente, entendí completamente lo que querías decir. Pero por el comentario del OP, no pensé que lo hiciera.
Thomas Stringer

Si considera el significado del diccionario de auditoría, probablemente llegará a la conclusión de que "tabla de auditoría" es un nombre inapropiado. Una auditoría debe ser externa a la base de datos: si está codificada por la propia empresa de aplicaciones, ¿cómo puede ser una auditoría?
cuando el

Respuestas:


22

Las tablas de auditoría se utilizan para rastrear transacciones contra una tabla o tablas en particular. Le permiten ver un "registro" en curso (por falta de una palabra mejor). Por ejemplo, supongamos que tiene una tabla como esta:

create table SensitiveInformation
(
    SensitiveNumber int not null,
    SensitiveData varchar(100) not null
)
go

Puede haber usuarios y / o aplicaciones que tengan acceso para insertar, actualizar y eliminar de esa tabla. Pero debido a la naturaleza sensible de esos datos, es posible que desee tener una manera rápida y fácil de rastrear quién está haciendo qué en esa tabla.

Entonces tiene una tabla de auditoría para rastrear lo que se está haciendo en esa tabla. Por lo general, eso incluirá lo básico Quién , Qué , Cuándo .

Una tabla de auditoría podría verse así:

create table SensitiveInformationAudit
(
    SensitiveNumberNew int null,
    SensitiveNumberOld int null,
    SensitiveDataNew varchar(100) null,
    SensitiveDataOld varchar(100) null,
    Action varchar(50) not null,
    AuditDate datetime not null,
    LastUpdatedUser varchar(100) not null
)
go

Las tablas de auditoría generalmente se completan mediante el uso de activadores de bases de datos. En otras palabras, cuando Xocurre una acción SensitiveInformation, inserte los detalles en ella SensitiveInformationAudit.


¿Es el Actioncampo el UPDATEo INSERTo DELETE?
leeand00

24

Otro aspecto importante de las tablas de auditoría que no se ha resaltado hasta ahora es que, además de realizar un seguimiento de quién hizo qué y en qué registros (a menudo incluyendo antes y después de las instantáneas), las tablas de auditoría se escriben una sola vez .

Los registros en una tabla de auditoría no pueden actualizarse o eliminarse (ver nota), solo insertarse . Esto a veces se impone mediante disparadores o tal vez solo mediante la lógica de la aplicación, pero es importante en la práctica porque le brinda una "prueba" de que nada ha sido manipulado de una manera que es difícil de detectar.

Nota: La limpieza de registros antiguos de una tabla de auditoría requiere procesos especiales que a menudo tienen que ser aprobados por la gerencia o los auditores.


4

Las tablas de auditoría se utilizan generalmente cuando desea realizar un seguimiento de los cambios en las tablas confidenciales / confidenciales. Si hay una tabla que se usa para la tasa de pago y el porcentaje de bonificación, y la aplicación de recursos humanos remunera los salarios en función de estos datos, entonces un usuario con acceso de escritura a esta tabla puede realizar modificaciones de pago no autorizadas.

Al mismo tiempo, algunos usuarios deberían poder trabajar en estas tablas. Aquí es donde entran las tablas de auditoría. Las tablas de auditoría se pueden usar para rastrear el valor anterior y posterior de los datos modificados. Por lo general, también guardan información adicional, como la persona que realizó el cambio y la hora en que se realizó el cambio.

Por lo tanto, estas tablas de auditoría disuaden a los usuarios autorizados de realizar actividades no autorizadas. También proporcionan un medio para volver a los valores correctos.

SQL 2008 y superior tienen una característica incorporada llamada Change Data Capture que se puede usar para esto.


2
Lamentablemente, la captura de datos Cambiar es terrible para la auditoría porque no puede capturar al usuario que realizó el cambio (a menos que ya lo esté almacenando en la base de datos).
HLGEM

0

Las tablas de auditoría son utilizadas por herramientas de auditoría nativas o de terceros que capturan los cambios de datos que se han producido en una base de datos, que generalmente incluye la información sobre quién realizó el cambio, qué objetos se vieron afectados, cuándo se realizó, así como la información sobre Inicio de sesión SQL, aplicación y host utilizados para realizar el cambio. Toda la información capturada se almacena en las tablas de auditoría y debe estar disponible en formatos fáciles de usar mediante exportación o consulta.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.