如何通过执行REVOKE命令在Oracle数据库中彻底撤销特定用户的DBA权限?
- 内容介绍
- 文章标签
- 相关推荐
本文共计962个文字,预计阅读时间需要4分钟。
相关专题:
必须用具有 dba 权限的用户(如 sys 或 system)执行 revoke dba from user_name;,否则会报 ora-01031: insufficient privileges 错误。
用哪个账号执行 REVOKE DBA 才有效
只有本身拥有 DBA 角色且带 ADMIN OPTION 的用户才能撤销其他用户的 DBA 权限。常见可行账号是 SYS AS SYSDBA 或 SYSTEM(前提是它没被人为移除 ADMIN OPTION)。SYSTEM 用户有时会被限制掉该选项,所以最稳妥的是用 SYS 登录:
sqlplus / as sysdba
登录后直接运行:
REVOKE DBA FROM scott;
注意:scott 必须大写(如果创建时用了双引号小写则另说),且该用户必须当前确实持有 DBA 角色——否则会报 ORA-01952: system privilege not granted to 'SCOTT'。
REVOKE DBA 不能跨实例或跨容器生效
Oracle 多租户(CDB/PDB)环境下,DBA 是一个数据库级角色,不是 CDB 级全局角色。
本文共计962个文字,预计阅读时间需要4分钟。
相关专题:
必须用具有 dba 权限的用户(如 sys 或 system)执行 revoke dba from user_name;,否则会报 ora-01031: insufficient privileges 错误。
用哪个账号执行 REVOKE DBA 才有效
只有本身拥有 DBA 角色且带 ADMIN OPTION 的用户才能撤销其他用户的 DBA 权限。常见可行账号是 SYS AS SYSDBA 或 SYSTEM(前提是它没被人为移除 ADMIN OPTION)。SYSTEM 用户有时会被限制掉该选项,所以最稳妥的是用 SYS 登录:
sqlplus / as sysdba
登录后直接运行:
REVOKE DBA FROM scott;
注意:scott 必须大写(如果创建时用了双引号小写则另说),且该用户必须当前确实持有 DBA 角色——否则会报 ORA-01952: system privilege not granted to 'SCOTT'。
REVOKE DBA 不能跨实例或跨容器生效
Oracle 多租户(CDB/PDB)环境下,DBA 是一个数据库级角色,不是 CDB 级全局角色。

