一、异常描述
- 环境描述
- 系统:
HP-UX B.11.23 U ia64 - 数据库
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
- 系统:
- 问题描述
sys用户,不能让job失效。。。
二、问题分析
- 最开始是怀疑定位错误
- 查询mos得知(文档 ID 452864.1)
竟然只有创建该job的用户才能删?作为管理员的我,在不知道应用用户密码的情况下竟被难住了? - 执行如下语句
dbms_ijob(3543,TRUE);
操作成功
三、结论
此处简单介绍一下DBMS_IJOB包(官档中PL/SQL Packages and Types Reference里没找到这个方法)
里面方法基本与DBMS_JOB包差不多,通过这个包,我们可以以sys用户对任何用户的job做相应操作,注意事项如下
- dbms_job只能在当期用户内创建job、修改和删除job,不能对其他用户的job进行操作;sys用户也无法用dbms_job管理其他用户的job。
- dbms_ijob只能由sys用户去执行,拥有DBA权限的用户都没有权限去执行它。
- 通过dbms_ijob sys用户可以给其他用户创建job,且job在该用户下,在该用户内可以通过user_jobs视图看到。
- 通过dbms_ijob sys用户能够对其他用户中的job进行删除、修改。
- sys用户通过dbms_ijob给其他用户创建job,那么该用户对该job拥有修改和删除的权限。
该包中某些函数相比DBMS_JOB包多了几个字段
- LUSER 提交工作时的登录用户
- PUSER 默认权限适用于此JOB的用户
- CUSER schema用户