3

在尝试从 sys 向我的模式 ABC 授予 java 执行权限时,我收到以下错误。我尝试了各种版本,但每次我收到错误时,都有任何建议。

我正在使用 Oracle 12c 数据库

    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 
4

1 回答 1

1

这是我找到的答案,在尝试授予 java 权限之前运行它:

grant JAVA_ADMIN to my_user WITH ADMIN OPTION;
于 2020-07-30T10:09:22.763 回答