NormalTable
e AuditNormalTable
.
NormalTable
e AuditNormalTable
.
Respostas:
Tabelas de auditoria são usadas para rastrear transações em uma ou mais tabelas específicas. Eles permitem que você veja um "log" em andamento (por falta de uma palavra melhor). Por exemplo, digamos que você tenha uma tabela como esta:
create table SensitiveInformation
(
SensitiveNumber int not null,
SensitiveData varchar(100) not null
)
go
Pode haver usuários e / ou aplicativos que tenham acesso para inserir, atualizar e excluir dessa tabela. Porém, devido à natureza sensível desses dados, convém ter uma maneira rápida e fácil de rastrear quem está fazendo o quê nessa tabela.
Então você tem uma tabela de auditoria para acompanhar o que está sendo feito nessa tabela. Normalmente, isso inclui o Quem , o quê , quando .
Uma tabela de auditoria pode ficar assim:
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
As tabelas de auditoria geralmente são preenchidas com o uso de gatilhos de banco de dados. Em outras palavras, quando a X
ação ocorre SensitiveInformation
, insira os detalhes dela SensitiveInformationAudit
.
Action
campo é o UPDATE
ou INSERT
ou DELETE
?
Um outro aspecto importante das tabelas de auditoria que não foi destacado até agora é que, além de acompanhar quem fez o que em que registro (geralmente incluindo antes e depois dos instantâneos), as tabelas de auditoria são gravadas uma vez .
Os registros em uma tabela de auditoria não podem ser atualizados ou excluídos (consulte a nota), apenas inseridos . Às vezes, isso é imposto pelo uso de gatilhos ou talvez apenas pela lógica do aplicativo, mas é importante na prática porque fornece uma "prova" de que nada foi adulterado de uma maneira difícil de detectar.
Nota: A limpeza de registros antigos de uma tabela de auditoria requer processos especiais que geralmente precisam ser aprovados pela gerência ou pelos auditores.
As tabelas de auditoria geralmente são usadas quando você deseja rastrear alterações em tabelas sensíveis / confidenciais. Se houver uma tabela usada para taxa de pagamento e porcentagem de bônus, e o aplicativo HR remunerar salários com base nesses dados, um usuário com acesso de gravação a esta tabela poderá fazer modificações de pagamento não autorizadas.
Ao mesmo tempo, alguns usuários devem ter permissão para trabalhar nessas tabelas. É aqui que as tabelas de auditoria entram. As tabelas de auditoria podem ser usadas para rastrear o valor antes e depois dos dados alterados. Geralmente, eles também salvam informações extras, como a pessoa que fez a alteração e o horário em que a alteração foi feita.
Portanto, essas tabelas de auditoria impedem que os usuários com poderes realizem atividades não autorizadas. Eles também fornecem um meio de voltar aos valores corretos.
O SQL 2008 e superior têm um recurso interno chamado Change Data Capture que pode ser usado para isso.
As tabelas de auditoria são usadas por ferramentas de auditoria nativas ou de terceiros que capturam alterações de dados que ocorreram em um banco de dados, geralmente incluindo as informações sobre quem fez a alteração, quais objetos foram afetados por ela, quando foram feitas, bem como as informações no Login, aplicativo e host SQL usados para fazer a alteração. Todas as informações capturadas são armazenadas nas tabelas de auditoria e devem estar disponíveis em formatos amigáveis, através da exportação ou consulta.