java.lang.SecurityException: policy table update SYS:JAVA.LANG.RUNTIMEPERMISSION, GETCLASSLOADER

3.1k Views Asked by At

While trying to grant java execute permissions to my schema ABC from sys, i get the below error.I tried various versions but every time i get the error, any suggestions.

I'm using Oracle 12c Database

    SQL> BEGIN
    DBMS_JAVA.GRANT_PERMISSION ('ABC', 'SYS:JAVA.LANG.RUNTIMEPERMISSION', 'GETCLASSLOADER', '' );
    COMMIT;
    END;  2    3    4
    5  /
    BEGIN
    *
ERROR at line 1:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.SecurityException: policy table update
SYS:JAVA.LANG.RUNTIMEPERMISSION, GETCLASSLOADER
ORA-06512: at "SYS.DBMS_JAVA", line 705
ORA-06512: at line 2



SQL> call DBMS_JAVA.GRANT_PERMISSION ('ABC', 'SYS:JAVA.LANG.RUNTIMEPERMISSION', 'GETCLASSLOADER', '' );
call DBMS_JAVA.GRANT_PERMISSION ('ABC', 'SYS:JAVA.LANG.RUNTIMEPERMISSION', 'GETCLASSLOADER', '' )
     *
ERROR at line 1:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.SecurityException: policy table update
SYS:JAVA.LANG.RUNTIMEPERMISSION, GETCLASSLOADER


SQL> exec DBMS_JAVA.GRANT_PERMISSION ('ABC', 'SYS:JAVA.LANG.RUNTIMEPERMISSION', 'GETCLASSLOADER', '' );
BEGIN DBMS_JAVA.GRANT_PERMISSION ('ABC', 'SYS:JAVA.LANG.RUNTIMEPERMISSION', 'GETCLASSLOADER', '' ); END;

*
ERROR at line 1:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.SecurityException: policy table update
SYS:JAVA.LANG.RUNTIMEPERMISSION, GETCLASSLOADER
ORA-06512: at "SYS.DBMS_JAVA", line 705
ORA-06512: at line 1


SQL> 


SQL> call DBMS_JAVA.GRANT_PERMISSION ('ABC', 'JAVA.LANG.RUNTIMEPERMISSION', 'GETCLASSLOADER', '' );
call DBMS_JAVA.GRANT_PERMISSION ('ABC', 'JAVA.LANG.RUNTIMEPERMISSION', 'GETCLASSLOADER', '' )
     *
ERROR at line 1:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.ClassNotFoundException: JAVA/LANG/RUNTIMEPERMISSION 
1

There are 1 best solutions below

1
On

Here's an answer I found, run it before trying to grant java permission:

grant JAVA_ADMIN to my_user WITH ADMIN OPTION;