São apenas mesas regulares. É como você os usa e o que você coloca neles que os torna "tabelas de auditoria".
Nick Chammas
1
Eles não são os mesmos. Você possui uma tabela de auditoria separada da tabela que está sendo auditada. Então você teria duas mesas NormalTablee AuditNormalTable.
22612 Thomas Thomas Stringer
1
Matt, o tubarão tem sua resposta nisso. @ Shark, eu estava enfatizando que uma tabela de auditoria não é uma construção de banco de dados especial (desde que tive a impressão de que o OP pode acreditar nisso). É apenas mais uma tabela que o desenvolvedor cria e usa para rastrear determinadas informações.
Nick Chammas
@NickChammas Oh, absolutamente, eu entendi completamente o que você quis dizer. Mas pelo comentário do OP, eu não acho que ele fez.
Thomas Stringer
Se você considerar o significado de auditoria do dicionário, provavelmente chegará à conclusão de que "tabela de auditoria" é um nome impróprio. Uma auditoria deve ser externa ao banco de dados: se é codificada pelo próprio negócio de aplicativos, como pode ser uma auditoria?
onedaywhen
Respostas:
22
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:
createtable SensitiveInformation(
SensitiveNumber int notnull,
SensitiveData varchar(100)notnull)
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:
createtable SensitiveInformationAudit(
SensitiveNumberNew int null,
SensitiveNumberOld int null,
SensitiveDataNew varchar(100)null,
SensitiveDataOld varchar(100)null,
Action varchar(50)notnull,
AuditDate datetime notnull,
LastUpdatedUser varchar(100)notnull)
go
As tabelas de auditoria geralmente são preenchidas com o uso de gatilhos de banco de dados. Em outras palavras, quando a Xação ocorre SensitiveInformation, insira os detalhes dela SensitiveInformationAudit.
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.
Infelizmente, a captura de dados de alteração é terrível para a auditoria porque você não pode capturar o usuário que fez a alteração (a menos que você já esteja armazenando isso no banco de dados).
HLGEM
0
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.
NormalTable
eAuditNormalTable
.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:
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:
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 ocorreSensitiveInformation
, insira os detalhes delaSensitiveInformationAudit
.fonte
Action
campo é oUPDATE
ouINSERT
ouDELETE
?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.
fonte
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.
fonte
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.
fonte