Tempo aproximado para leitura: 00:01:52 min
Ocorrência
O erro abaixo é apresentado na Execução da Procedure SP_REMOVETRIGGERS em base Oracle:
Não foi possível remover as triggers do Log de Auditoria!
Ambiente
Framework - Framework (Linha RM) - Banco de Dados - A partir da 12.1.27
Causa
A Procedure pode não existir na base, ou o usuário não tem permissão de executá-la.
Solução
Neste tipo de inconsistência temos que realizar os seguintes passos:
- Verificar se a PROCEDURE existe na Base:
SELECT * FROM ALL_PROCEDURES WHERE OWNER = 'RM' AND OBJECT_NAME = 'SP_REMOVETRIGGERS'
- Verifica as permissões do usuário referente as Triggers:
SELECT * FROM
(SELECT PRIVILEGE FROM SYS.DBA_SYS_PRIVS WHERE GRANTEE = 'RM'
UNION
SELECT PRIVILEGE FROM DBA_ROLE_PRIVS RP JOIN ROLE_SYS_PRIVS RSP ON (RP.GRANTED_ROLE = RSP.ROLE) WHERE RP.GRANTEE = 'RM' ORDER BY 1) TEMP
WHERE PRIVILEGE LIKE '%TRIGGER%';
- Caso a Procedure exista e o usuário RM não possua as permissões para manipular as Triggers, gentileza executar os GRANTS abaixo antes da Atualização da Base de Dados utilizando o usuário SYS:
GRANT CONNECT, RESOURCE, CREATE VIEW TO RM;
GRANT SELECT ANY DICTIONARY TO RM;
GRANT CONNECT,CREATE SYNONYM TO SYSDBA;
GRANT EXECUTE ON DBMS_SYS_SQL TO RM;
GRANT EXECUTE ON DBMS_SQL TO RM;
GRANT CREATE TRIGGER TO RM;
GRANT SELECT ON V_$SESSION TO RM;
GRANT SELECT ON V_$STATNAME TO RM;
GRANT SELECT ON V_$SESSTAT TO RM;
GRANT SELECT ON V_$INSTANCE TO RM;
Importante
Caso a Procedure não exista na base de dados, favor entrar em contato com o Suporte de Banco de Dados.
0 Comentários