Monday, November 8, 2021

ADFIXUSER.sql Fail With ORA-01927 ORA-06512

 ADFIXUSER.sql Fail With ORA-01927 ORA-06512


On : 12.2 version
After executing adop (prepare stage)
We got this  Warming 

ADFIXUSER.sql fail with ORA-01927 ORA-06512

ERROR
-----------------------
sqlplus apps/<password> @$AD_TOP/patch/115/sql/ADFIXUSER.sql

ERROR at line 1:

ORA-01927: cannot REVOKE privileges you did not grant
ORA-06512: at "SYS.AD_ZD_SYS", line 638
ORA-06512: at "SYS.AD_ZD_SYS", line 638
ORA-06512: at line 2
CAUSE

SYS.DUAL table has incorrect privileges.
select * from DBA_TAB_PRIVS where TABLE_NAME='DUAL' order by 4,1,2,3,5;
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIE COM TYPE INH

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

APEX_200100 SYS DUAL SYS FLASHBACK NO NO YES TABLE YES <<<<<<<<<<<<<<<<<<<<<<<
APEX_200100 SYS DUAL SYS SELECT NO NO YES TABLE YES <<<<<<<<<<<<<<<<<<<<<<<
PUBLIC SYS DUAL SYS SELECT YES NO NO TABLE NO
SYS.DUAL table should have only the following privileges
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIE COM TYPE

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

APPS SYS DUAL SYS SELECT YES NO NO TABLE
PUBLIC SYS DUAL SYS SELECT YES NO NO TABLE
SYSTEM SYS DUAL SYS SELECT YES NO NO TABLE

SOLUTION

To resolve this issue, revoke the extra privileges manually and assign the correct privileges.

For the Database versions lower than 19c:

revoke flashback on SYS.DUAL from APEX_200100;
revoke SELECT on SYS.DUAL from APEX_200100;
grant select on dual to APPS with GRANT OPTION;
grant select on dual to SYSTEM with GRANT OPTION;

For the Database version 19c:

revoke FLASHBACK on SYS.DUAL from APEX_200100 container=all;
revoke SELECT on SYS.DUAL from APEX_200100 container=all;
grant select on dual to APPS with GRANT OPTION;
grant select on dual to SYSTEM with GRANT OPTION;

No comments: