Qu'est-ce qu'une table d'audit?


24

Que sont les tables d'audit?

Comment sont-ils utiles?

Je les ai rencontrés en lisant cet article .


2
Ce ne sont que des tables régulières. C'est la façon dont vous les utilisez et ce que vous y mettez qui en fait des "tables d'audit".
Nick Chammas

1
Ce ne sont pas les mêmes. Vous disposez d'une table d'audit, distincte de la table que vous auditez. Vous auriez donc deux tables, NormalTableet AuditNormalTable.
Thomas Stringer

1
Matt, Shark a votre réponse. @ Shark, j'insistais sur le fait qu'une table d'audit n'est pas une construction de base de données spéciale (car j'ai l'impression que le PO peut le croire). C'est juste une autre table que le développeur construit et utilise pour suivre certaines informations.
Nick Chammas

@ NickChammas Oh absolument, j'ai complètement compris ce que tu voulais dire. Mais d'après le commentaire du PO, je ne pensais pas qu'il l'avait fait.
Thomas Stringer

Si vous considérez le sens de l'audit dans le dictionnaire, vous arriverez probablement à la conclusion que «table d'audit» est un terme impropre. Un audit doit être externe à la base de données: s'il est codé par l'entreprise d'application elle-même, comment peut-il s'agir d'un audit?
quand

Réponses:


22

Les tables d'audit sont utilisées pour suivre les transactions par rapport à une ou plusieurs tables particulières. Ils vous permettent de voir un "journal" en cours (faute d'un meilleur mot). Par exemple, supposons que vous ayez une table comme celle-ci:

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

Il peut y avoir des utilisateurs et / ou des applications qui ont accès pour insérer, mettre à jour et supprimer de cette table. Mais en raison de la nature sensible de ces données, vous souhaiterez peut-être un moyen rapide et facile de suivre qui fait quoi sur cette table.

Vous avez donc une table d'audit pour suivre ce qui est fait sur cette table. En règle générale, cela comprend les éléments de base qui , quoi , quand .

Une table d'audit pourrait ressembler à ceci:

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

Les tables d'audit sont généralement remplies à l'aide de déclencheurs de base de données. En d'autres termes, lorsque l' Xaction se produit SensitiveInformation, insérez-en les détails SensitiveInformationAudit.


Le Actionchamp est-il le UPDATEou INSERTou DELETE?
leeand00

24

Un autre aspect important des tables d'audit qui n'a pas été mis en évidence jusqu'à présent est qu'en plus de savoir qui a fait quoi dans quel enregistrement (souvent avant et après les instantanés), les tables d'audit sont à écriture unique .

Les enregistrements d'une table d'audit ne peuvent pas être mis à jour ou supprimés (voir note), ils sont seulement insérés . Cela est parfois imposé à l'aide de déclencheurs ou peut-être simplement d'une logique d'application, mais c'est important dans la pratique car cela vous donne la "preuve" que rien n'a été falsifié d'une manière difficile à détecter.

Remarque: Le nettoyage des anciens enregistrements d'une table d'audit nécessite des processus spéciaux qui doivent souvent être approuvés par la direction ou les auditeurs.


4

Les tables d'audit sont généralement utilisées lorsque vous souhaitez suivre les modifications des tables sensibles / confidentielles. S'il existe un tableau utilisé pour le taux de rémunération et le pourcentage de bonus, et que l'application RH rémunère les salaires en fonction de ces données, un utilisateur disposant d'un accès en écriture à ce tableau peut apporter des modifications de paiement non autorisées.

Dans le même temps, certains utilisateurs devraient être autorisés à travailler sur ces tables. C'est là que les tables d'audit entrent en jeu. Les tables d'audit peuvent être utilisées pour suivre la valeur avant et après les données modifiées. Habituellement, ils enregistrent également des informations supplémentaires comme la personne qui a effectué le changement et l'heure à laquelle le changement a été effectué.

Par conséquent, ces tables d'audit dissuadent les utilisateurs autorisés d'effectuer des activités non autorisées. Ils fournissent également un moyen de revenir aux valeurs correctes.

SQL 2008 et versions ultérieures ont une fonctionnalité intégrée appelée Change Data Capture qui peut être utilisée pour cela.


2
Malheureusement, la capture de données Change est terrible pour l'audit car vous ne pouvez pas capturer l'utilisateur qui a effectué le changement (sauf si vous le stockez déjà dans la base de données).
HLGEM

0

Les tables d'audit sont utilisées par des outils d'audit natifs ou tiers qui capturent les modifications de données qui se sont produites sur une base de données, y compris généralement les informations sur qui a effectué la modification, quels objets ont été affectés par elle, quand elle a été effectuée ainsi que les informations sur la Connexion SQL, application et hôte utilisés pour effectuer le changement. Toutes les informations capturées sont stockées dans les tables d'audit et doivent être disponibles dans des formats conviviaux via l'exportation ou l'interrogation.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.