You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c中为用户授予特定Schema的调度作业权限咨询

解决方案:Oracle 19c限定用户仅在指定Schema创建调度作业

要限制用户仅能在特定Schema而非整个数据库中创建调度作业,需替换全局系统权限为对象级Schema权限,具体步骤如下:

1. 撤销全局系统权限(若已授予)

如果之前给用户/角色授予了全局的调度相关系统权限,先撤销这些权限以避免全局权限冲突:

REVOKE MANAGE SCHEDULER FROM <user_or_role>;
REVOKE CREATE JOB FROM <user_or_role>;
REVOKE CREATE PROGRAM FROM <user_or_role>;
REVOKE CREATE SCHEDULE FROM <user_or_role>;

2. 授予指定Schema的对象级权限

使用ON SCHEMA子句,将创建调度对象的权限限定到目标Schema(替换<target_schema>为实际Schema名称):

-- 允许在指定Schema创建作业
GRANT CREATE JOB ON SCHEMA <target_schema> TO <user_or_role>;
-- 允许在指定Schema创建程序
GRANT CREATE PROGRAM ON SCHEMA <target_schema> TO <user_or_role>;
-- 允许在指定Schema创建调度计划
GRANT CREATE SCHEDULE ON SCHEMA <target_schema> TO <user_or_role>;

3. 补充必要的执行权限(可选)

如果调度作业需要执行指定Schema中的存储过程、函数等对象,需额外授予执行权限:

-- 授予单个存储过程的执行权限
GRANT EXECUTE ON <target_schema>.<procedure_name> TO <user_or_role>;
-- 或授予该Schema下所有存储过程/函数的执行权限
GRANT EXECUTE ANY PROCEDURE ON SCHEMA <target_schema> TO <user_or_role>;

4. 基础会话权限(若未授予)

确保用户拥有连接数据库的基础权限:

GRANT CREATE SESSION TO <user_or_role>;

权限说明

  • 全局系统权限(如CREATE JOB)允许用户在任意Schema创建调度对象,而CREATE JOB ON SCHEMA <target_schema>仅限定用户在指定Schema内操作。
  • 用户默认拥有自己在指定Schema下创建的调度对象的管理权限(如修改、删除),无需额外授予全局MANAGE SCHEDULER权限。

内容的提问来源于stack exchange,提问作者Kishan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 19:22:09