NormalTable
y AuditNormalTable
.
NormalTable
y AuditNormalTable
.
Respuestas:
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 X
ocurre una acción SensitiveInformation
, inserte los detalles en ella SensitiveInformationAudit
.
Action
campo el UPDATE
o INSERT
o DELETE
?
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.
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.
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.