Tempo aproximado para leitura: 00:02:07 min
Dúvida
Como é o armazenamento do novo Log de Auditoria?
Ambiente
Framework - Framework (Linha RM) - Banco de Dados - Todas as versões
Solução
O Log de auditoria é composto por uma série de procedures, onde quando é selecionada uma tabela a ser auditada, cria-se uma Tabela Espelho em um Schema exclusivo do Log de Auditoria TOTVSAUDIT e uma trigger no banco de dados, dependendo da ação escolhida Insert, Update e Delete.
Quando houver transações que utilizam a tabela selecionada, a Trigger é disparada e grava na tabela de Log ZAUDITCHANGES as informações sobre o autor da ação, e os dados que foram criados, alterados ou deletados é salvo na Tabela Espelho a TOTVSAUDIT.PPESSOA.
No novo modelo do Log de Auditoria, as informações correspondentes as alterações Updates são armazenados em dois registros, o original e o alterado, ou seja, a constante O representa os registros com os valores originais antes da alteração.
Estas informações podem ser consultadas através de queries no banco de dados ou através da interface do usuário do Log de Auditoria.
INFORMAÇÕES DO RELATÓRIO DENTRO DA APLICAÇÃO:
Acesse o menu Serviços Globais - Administração - TOTVS Audit - Log de alterações, faça um filtro na tela inicial para administrar a quantidade de logs que será exibido em tela, em seguida no menu processos, acesse a opção de Gerar Relatório com base no log de auditoria onde as informações mais detalhadas são apresentadas.
Nessa tela, é possível selecionar o período, a operação desejada e depois é possível marcar a tabela e campo da tabela no qual deseja visualizar a operação, após isso será gerado o relatório em .txt
INFORMAÇÕES DO RELATÓRIO REALIZANDO EM CONSULTA SQL:
Os registros para o novo log de auditoria são armazenados nas seguintes tabelas:
TOTVSAUDIT.ZAUDITCHANGES - Serão armazenados todos os registros de auditoria das tabelas habilitadas;
TOTVSAUDIT.(NOME_DA_TABELA) - Quando a auditoria de uma tabela for habilitada será criado um "espelho" da tabela e serão armazenados todos os registros de alterações. No caso de UPDATE serão armazenados 2 registros, um mostrando o que foi alterado e o segundo com os dados originais da tabela.
Para coletar as informações via banco de dados, é necessário desenvolver uma consulta criando uma junção entre as tabelas acima, e para isso a coluna AUDITID faz ligação entre elas.
Exemplo:
SELECT * FROM TOTVSAUDIT.PPESSOA PESSOA
INNER JOIN TOTVSAUDIT.ZAUDITCHANGES ZAUDIT
ON PESSOA.AUDITID = ZAUDIT.AUDITID
Segue outros objetos correspondentes ao Novo Log de Auditoria:
- Tabela com as configurações do Novo Log
SELECT * FROM ZAUDITCONFIG
- Tabela onde encontramos quais as tabelas são auditadas
SELECT * FROM ZAUDITITEMS
- Tabela com as Exceções
SELECT * FROM ZAUDITEXCEPTION
- Tabela onde são criados os registros de cabeçalho da auditoria, Nome do usuário, Data, Etc
SELECT * FROM TOTVSAUDIT.ZAUDITCHANGES ORDER BY 1 DESC
- Tabela onde são armazenadas as auditorias de DDL
SELECT * FROM TOTVSAUDIT.ZAUDITSCHEMAEVENTS ORDER BY 1 DESC
- Tabela espelho do Novo Log onde ficam os dados que foram auditados, e necessário um join com a ZAUDITCHANGES para pegar o cabeçalho.
SELECT * FROM TOTVSAUDIT.PFUNC
SAIBA MAIS
Para mais informações acesso a documentação sobre o Novo Log de Auditoria
Framework - Framework RM - BD - Habilitar novo Log de Auditoria
Framework - Framework RM - BD - Como desabilitar TOTVS Audit
1 Comentários