NormalTable
et AuditNormalTable
.
NormalTable
et AuditNormalTable
.
Réponses:
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' X
action se produit SensitiveInformation
, insérez-en les détails SensitiveInformationAudit
.
Action
champ est-il le UPDATE
ou INSERT
ou DELETE
?
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.
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.
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.