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

Oracle数据库中如何将HR Schema的权限赋予developer_user角色?

解决Oracle中复制HR权限到developer_user角色的问题

你之前使用的SQL语法不符合Oracle规范,Oracle不支持GRANT all privileges from dba_sys_privs to ... where ...这类写法。要将HR拥有的权限完整复制到developer_user角色,需分场景生成对应的授权语句并执行:

1. 复制系统权限

先查询HR拥有的系统权限,自动生成授权语句:

SELECT 'GRANT ' || privilege || ' TO developer_user;'
FROM dba_sys_privs
WHERE grantee = 'HR';

执行该查询后,会得到一系列GRANT 权限名 TO developer_user;格式的语句,将这些语句复制出来执行即可完成系统权限的授予。

2. 复制对象权限

如果HR拥有其他用户对象(如其他Schema的表、视图)的访问权限,用以下语句生成授权脚本:

SELECT 'GRANT ' || privilege || ' ON ' || owner || '.' || table_name || ' TO developer_user;'
FROM dba_tab_privs
WHERE grantee = 'HR';

同样,复制查询结果中的语句执行,即可完成对象权限的复制。

3. 复制角色权限

若HR被授予了其他角色,要将这些角色也赋予developer_user,使用:

SELECT 'GRANT ' || granted_role || ' TO developer_user;'
FROM dba_role_privs
WHERE grantee = 'HR';

注意

执行生成的授权语句前,确保当前操作的用户拥有GRANT ANY PRIVILEGE或对应权限的授予权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:05:22