Oracle 9i统计作业的权限
我们希望将自动统计数据收集从外部脚本转移到Oracle 9i的作业调度程序中。这是一项非常简单的工作,代码基本上如下所示:Oracle 9i统计作业的权限,oracle,oracle9i,privileges,job-scheduling,ora-12012,Oracle,Oracle9i,Privileges,Job Scheduling,Ora 12012,我们希望将自动统计数据收集从外部脚本转移到Oracle 9i的作业调度程序中。这是一项非常简单的工作,代码基本上如下所示: DBMS_JOB.SUBMIT( JOB => <output variable>, WHAT => 'DBMS_STATS.GATHER_DATABASE_STATS( cascade => TRUE, options => ''GATHER AUTO'');', NEXT_DATE
DBMS_JOB.SUBMIT(
JOB => <output variable>,
WHAT => 'DBMS_STATS.GATHER_DATABASE_STATS(
cascade => TRUE, options => ''GATHER AUTO'');',
NEXT_DATE => <start date>,
INTERVAL => 'SYSDATE + 7');
我没有得到的部分是,我提交作业的用户拥有收集这些数据库统计信息的正确权限——如果我手动运行该命令,它就会工作。我很好奇Oracle是否忽略了用户在创建过程中拥有的任何基于角色的特权,因此我直接授予用户任何分析权限,但仍然没有骰子
我是否需要直接授予用户一些其他权限才能完成此操作?如果我在模式的所有者下提交作业,我宁愿不必为每个模式做单独的作业。您使用的是哪个版本的9i。我记得在一个AskTom线程上读到关于9.2.0.1出现问题并且需要执行授权选择的内容,我将查找该线程
另外,由于您正在运行DB stats not子例程分析任何字典这是什么用户?您专门为作业创建的用户?这是我们创建的用户,尽管不是专门为作业创建的。用户需要在我们的所有模式中执行各种工作,因此它有一个自定义角色,该角色赋予它系统权限来执行几乎所有事情。这就是为什么我认为Oracle忽略了基于角色的特权,因为否则该作业就不会有访问权限不足的问题。
ORA-12012: error on auto execute of job 25
ORA-20000: Insufficient privileges to analyze an object in Database
ORA-06512: at "SYS.DBMS_STATS", line 11015
...