当我从架构A登录时,我需要使用架构B的脱机和脱机JOBS。
我可以使用一些助手来达到这个目标吗?
答案 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的作业执行大多数操作,但停止正在运行的作业。