Child pages
  • Requisitos Novo Log de Auditoria
Skip to end of metadata
Go to start of metadata

Pré Requisitos para migração e utilização do Novo Log de Auditoria.

ORACLE

Por questões de organização, segurança e performance, foi criada uma rotina que é executada no momento da migração para o Novo Log de Auditoria, a mesma faz a criação do Esquema TOTVSAUDIT e dos TABLESPACES TOTVSAUDIT_DADOS e TOTVSAUDIT_INDICES

Os tablespaces serão criados nos mesmos diretórios de dados onde já existem os arquivos de dados dos tablespaces de sistema RM_DADOS e RM_INDICES. (Caso seja de sua preferência os tablespaces podem ser criados antecipadamente pela sua equipe de DBA's, assim pode-se definir um local diferente para os mesmos.)

Para esta utilização é pré-requisito que o usuário Owner do Sistema RM (Padrão: RM) tenha perfil DBA e possua as seguintes permissões:

SELECT ANY DICTIONARY, SELECT ON DBA_LOBS e SELECT ON DBA_SEGMENTS.

É necessário também que o parâmetro do SGBD Oracle JOB_QUEUE_PROCESSES esteja com o valor superior a 100.

Caso o usuário não atenda aos pré-requisitos acima, poderão ocorrer erros na conversão da Base de Dados para nova versão.

A partir da versão 12.1.24 foi implementada uma nova ACTION que realiza algumas verificações na base de dados Oracle, a mesma tem a funcionalidade de verificar se existem problemas no Schema ou objetos do Novo Log de Auditoria, para que não ocorra problemas na Conversão da base de dados.

Caso apresente o erro abaixo durante a conversão, deve-se realizar as seguintes verificações.

1) Verificar se existem as tabelas ZAUDITCHANGES e ZAUDITSCHEMAEVENTS do Schema de Auditoria:

  • SELECT AUDITSCHEMANAME FROM ZAUDITCONFIG; (VERIFICAR QUAL É O SCHEMA DE AUDITORIA)
  • SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER='SCHEMA_TOTVSAUDIT' AND TABLE_NAME IN ('ZAUDITCHANGES','ZAUDITSCHEMAEVENTS'); (VERIFICA SE EXISTEM AS TABELAS NECESSÁRIAS)

2) Verificar se o Owner do Sistema RM possui permissão de SELECT ANY DICTIONARY:

  • SELECT Count(*) FROM USER_SYS_PRIVS WHERE PRIVILEGE = 'SELECT ANY DICTIONARY'; (VALOR DEVE SER IGUAL A 1)

3) Verificar se os Jobs do Oracle encontram-se configurados e com valor superior a 100 JOBS:

  • SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'job_queue_processes'; (VALOR DEVE SER SUPERIO A 100)

As verificações acima devem ser executadas com o Owner do Sistema RM no banco de dados. (Padrão, Schema RM)

Testes de Homologação de Novas versões em Bases de Dados Oracle

Caso seja necessário restaurar uma base de dados Oracle em um ambiente de homologação, utilizando-se das ferramentas IMP ou IMPDP, deve-se restaurar o Schema RM,  após o final da restauração deve-se executar a Stored Procedure p_FixNovoLog.(Disponível nas versões 12.1.22 e superiores, verificar junto ao suporte o Patch que possui esta feature disponível)

Comando: EXEC p_FixNovoLog;

Esta nova Stored Procedure faz uma verificação e cria ou recria os objetos necessários para o correto funcionamento do Novo Log de Auditoria como Schema de Auditoria, Tabelas, Grants, Etc.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

SQL SERVER

Caso esteja sendo utilizado o Novo Log de Auditoria em MS SQL Server e aplicações em Delphi é necessário se atentar ao seguinte ponto:

Devido ao funcionamento do Delphi o parâmetro CONCAT_NULL_YIELDS_NULL  e ANSI_WARNINGS devem estar ligados.

Este será o comportamento padrão do MS SQL Server em versões futuras de acordo com a Microsoft.

Parâmetro CONCAT_NULL_YIELDS_NULL

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-concat-null-yields-null-transact-sql?view=sql-server-2017

Parâmetro ANSI_WARNINGS 

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-ansi-warnings-transact-sql?view=sql-server-2017

Este parâmetro deve ser alterado a nível de banco de dados, conforme exemplo abaixo:

Parâmetro CONCAT_NULL_YIELDS_NULL 

USE [master]

GO
ALTER DATABASE [CorporeRM]* SET CONCAT_NULL_YIELDS_NULL ON WITH NO_WAIT
GO

Parâmetro ANSI_WARNINGS 

USE [master]

GO
ALTER DATABASE [Corpore]* SET ANSI_WARNINGS ON WITH NO_WAIT
GO

CorporeRM será o nome do Database em uso pela aplicação.

  • No labels