Erro ORA-31693 ORA-01031 ao executar um expdp no oracle 12.1.0.2.0


Durante a execução de um atendimento, no qual tive a necessidade de efetuar a de um export owner via datapump, em um ambiente Oracle 12.1.0.2.0 single tenant, o processo apresentou o erro ORA-31693 e ORA-01031 "insufficient privileges". 
Este erro ocorre devido ao bug 18844843 que afeta as versões maiores que a 12.1 e menores que 12.2.

Este bug pode ocorrer sempre que for realizado um expdp utilizando FLASHBACK_TIME ou FLASHBACK_SCN como parâmetro afim de garantir a consistência do processo de export.

Affects:

Product (Component)Oracle Server (Rdbms)
Range of versions believed to be affectedVersions >= 12.1 but BELOW 12.2
Versions confirmed as being affected
Platforms affectedGeneric (all / most platforms affected)
 Note that this fix has been superseded by the fix in Bug:19238926 

Fixed:

This fix has been superseded - please see the fixed version information for Bug:19238926 . The box below only shows versions where the code change/s for 18844843 are first included - those versions may not contain the later improved fix.
The fix for 18844843 is first included in
Conforme a DOC ID 18844843.8 que trata deste bug, a correção do mesmo está prevista para a versão 12.2 e existem 2 woraround's que podem ser aplicados.

O primeiro workaround é não utilizar o parâmetro flashback ao realizar o export e o segundo é conceder diretamente ao usuário que está realizando o expdp, 8 grants nas visões abaixo até que a correção disponibilizada pela Oracle seja aplicada (neste caso, PSU). No meu caso, optei por conceder as permissões e continuar usando o parâmetro flashback.
grant flashback on SYS.KU$_USER_MAPPING_VIEW TO <expdp username>;
grant flashback on ORDDATA.ORDDCM_DOCS to <expdp username>;
grant flashback on SYS.FGA_LOG$FOR_EXPORT to <expdp username>;
grant flashback on SYSTEM.SCHEDULER_JOB_ARGS to <expdp username>;
grant flashback on SYSTEM.SCHEDULER_PROGRAM_ARGS to <expdp username>;
grant flashback on SYS.AUDTAB$TBS$FOR_EXPORT to <expdp username>;
grant flashback on SYS.DBA_SENSITIVE_DATA to <expdp username>;
grant flashback on SYS.DBA_TSDP_POLICY_PROTECTION to <expdp username>;
grant flashback on SYS.NACL$_ACE_EXP to <expdp username>;
grant flashback on SYS.NACL$_HOST_EXP to <expdp username>;
grant flashback on SYS.NACL$_WALLET_EXP to <expdp username>;
grant flashback on WMSYS.WM$EXP_MAP to <expdp username>;
Concedidas as permissões acima, o processo de export via datapump pode ser realizado com sucesso utilizando o parametro flashback.

Fonte: Bug 18844843  EXPDP Full with Flashback_scn or Flashback_time specified fails with ORA-31693 ORA-1031 on some objects in 12c - superseded 
Keywords: ORA-31693, ORA-01031: insufficient privileges

Comentários