ORA-23421

来源:互联网 发布:二进制数组转字符串 编辑:程序博客网 时间:2024/06/10 23:58


一、异常描述

  1. 环境描述
    • 系统:
      HP-UX B.11.23 U ia64
    • 数据库
      Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
  2. 问题描述
    sys用户,不能让job失效。。。

二、问题分析

  1. 最开始是怀疑定位错误
  2. 查询mos得知(文档 ID 452864.1)

    竟然只有创建该job的用户才能删?作为管理员的我,在不知道应用用户密码的情况下竟被难住了?
  3. 执行如下语句
    dbms_ijob(3543,TRUE);
    操作成功

三、结论

此处简单介绍一下DBMS_IJOB包(官档中PL/SQL Packages and Types Reference里没找到这个方法)

里面方法基本与DBMS_JOB包差不多,通过这个包,我们可以以sys用户对任何用户的job做相应操作,注意事项如下

  1. dbms_job只能在当期用户内创建job、修改和删除job,不能对其他用户的job进行操作;sys用户也无法用dbms_job管理其他用户的job。
  2. dbms_ijob只能由sys用户去执行,拥有DBA权限的用户都没有权限去执行它。
  3. 通过dbms_ijob sys用户可以给其他用户创建job,且job在该用户下,在该用户内可以通过user_jobs视图看到。
  4. 通过dbms_ijob sys用户能够对其他用户中的job进行删除、修改。
  5. sys用户通过dbms_ijob给其他用户创建job,那么该用户对该job拥有修改和删除的权限。

该包中某些函数相比DBMS_JOB包多了几个字段

  • LUSER 提交工作时的登录用户
  • PUSER 默认权限适用于此JOB的用户
  • CUSER schema用户
0 0
原创粉丝点击