Oracle:允许每个模式控制一些JOBS

时间:2012-06-22 07:36:03

标签: oracle jobs

当我从架构A登录时,我需要使用架构B的脱机和脱机JOBS。

我可以使用一些助手来达到这个目标吗?

1 个答案:

答案 0 :(得分:2)

如果您使用的是DBMS_JOB,则您的选项有限。根据{{​​3}}:

  

“没有与作业关联的数据库权限.DBMS_JOB可以   不允许用户触摸除自己以外的任何工作。“

有一种解决方法:DBMS_IJOB。这是没有记录的,因为它由SYS拥有,不应该由真人使用。你要小心这个。由于它没有记录,我们依赖非官方来源。 Adam Donahue在这个软件包上写了一篇有用的博客。 the documentation

或者,您可以构建自己的基础架构:架构B拥有一个手动卷包来管理其作业,并将该包上的EXECUTE授予架构A.

DBMS_SCHEDULER(在10g中引入)提供了更多的灵活性。嗯,实际上更灵活,读取“复杂性”。有多种方法可以对预定作业进行切片和切片,以及特权和角色矩阵。 Read it here

开箱即用,无法让Schema A管理Schema B的所有作业。有与DBMS_SCHEDULER关联的各种ANY级别权限,但这些权限非常强大,不能限制在单个架构上的权限。在最粗暴的B级可以做到这一点:

 grant alter bjob1 to A;
 grant alter bjob2 to A;

等等。这将允许A对B的作业执行大多数操作,但停止正在运行的作业。