日期:2014-05-16  浏览次数:21181 次

@@@@@@@@@@@存储过程DBMS_JVM_EXP_PERMS权限不足
普通用户命令下执行
DECLARE 
POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY;
CURSOR C1 IS Select 'GRANT',USER(),'SYS','java.io.FilePermission','<<ALL FILES>>','execute','ENABLED' FROM DUAL;
BEGIN
OPEN C1;
FETCH C1 BULK COLLECT INTO POL;
CLOSE C1;
DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL);
END;
/

提示

第 1 行出现错误:
ORA-01031: 权限不足
ORA-06512: 在 "SYS.DBMS_JVM_EXP_PERMS", line 194
ORA-06512: 在 line 8

我已经运行
grant execute on DBMS_JVM_EXP_PERMS to public;
赋予权限了,为什么还不成功呢?
谢谢

------解决方案--------------------
这个权限必须直接授予给执行的用户,不可以通过角色间接授予。
------解决方案--------------------
SYS.DBMS_JVM_EXP_PERMS的权限是已经有了,它的问题是执行到SYS.DBMS_JVM_EXP_PERMS的194行时出错。
把DBMS_JOB权限也授予用户。
或者用SYS用户执行看是否正常。

探讨
这个权限必须直接授予给执行的用户,不可以通过角色间接授予。