Oracle普通用户启停JOB报错ORA 27486权限不足
问题与现象
应用用户通过DBMS_SCHEDULER启停自己的JOB需要的权限:
sql
grant execute on dbms_scheduler to appuser;
该普通用户有CREATE JOB的权限。通过DBMS_SCHEDULER停止自己的JOB时:
sql
BEGIN
DBMS_SCHEDULER.STOP_JOB('APPUSER.ETLJOB', force=>true);
END;
/
收到如下报错:
ORA-27486: 权限不足
ORA-06512: 在"SYS.DBMS_ISCHED", line 210
ORA-06512: 在"SYS.DBMS_SCHEDULER", line 557
ORA-06512: 在 line 1
原因与对策
不加force的时,执行用户必须是JOB OWNER或者对JOB具有ALTER权限。也可以对用户授予CREATE ANY JOB或者MANAGE SCHEDULER权限(不推荐)。
加force参数时,用户必须具有MANAGE SCHEDULER权限,否则会报ORA-27486权限不足。
sql
grant manage scheduler to appuser;