relate perguntas
-
Os índices filtrados podem ajudar a melhorar as consultas baseadas em uma hora inserida ou isso deve ser evitado?
-
Qual é a diferença entre os tipos de dados MySQL VARCHAR e TEXT?
-
É melhor armazenar os valores calculados ou recalculá-los a pedido? [duplicado]
-
Armazenar vs calcular valores agregados
-
Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?
Um outro aspecto importante das tabelas de auditoria que não foi destacado até agora é que, além de acompanhar quem fez o quê para qual registro (geralmente incluindo instantâneos antes e depois) , as tabelas de auditoria são de gravação única .
Os registros em uma tabela de auditoria não podem ser atualizados ou excluídos (ver nota), apenas inseridos . Isso às vezes é imposto usando gatilhos ou talvez apenas a lógica do aplicativo, mas é importante na prática porque fornece "prova" de que nada foi adulterado de uma maneira difícil de detectar.
Observação: 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 são usadas para rastrear transações em uma tabela ou 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:
Pode haver usuários e/ou aplicativos que tenham acesso para inserir, atualizar e excluir dessa tabela. Mas devido à natureza confidencial desses dados, você pode querer ter uma maneira rápida e fácil de rastrear quem está fazendo o que nessa tabela.
Então você tem uma Tabela de Auditoria para rastrear o que está sendo feito nessa tabela. Normalmente, isso inclui o básico Who , What , When .
Uma tabela de auditoria pode ter esta aparência:
As tabelas de auditoria geralmente são preenchidas com o uso de acionadores de banco de dados. Em outras palavras, quando
X
a ação acontece emSensitiveInformation
, insira os detalhes dela emSensitiveInformationAudit
.As tabelas de auditoria geralmente são usadas quando você deseja rastrear alterações em tabelas confidenciais/confidenciais. Se houver uma tabela usada para taxa salarial e porcentagem de bônus, e o aplicativo de RH remunerar os salários com base nesses dados, um usuário com acesso de gravação a essa 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 entram as tabelas de auditoria. As tabelas de auditoria podem ser usadas para rastrear o valor anterior e posterior dos dados alterados. Normalmente, eles também salvam informações extras, como a pessoa que fez a alteração e a hora em que a alteração foi feita.
Portanto, essas tabelas de auditoria impedem que usuários habilitados realizem atividades não autorizadas. Eles também fornecem um meio de reverter para os 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 foi feita, bem como as informações sobre o banco de dados. Login SQL, aplicativo e host 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 via exportação ou consulta.