如何通过执行REVOKE命令在Oracle数据库中彻底撤销特定用户的DBA权限?

2026-04-28 22:311阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计962个文字,预计阅读时间需要4分钟。

如何通过执行REVOKE命令在Oracle数据库中彻底撤销特定用户的DBA权限?

相关专题:

必须用具有 dba 权限的用户(如 syssystem)执行 revoke dba from user_name;,否则会报 ora-01031: insufficient privileges 错误。

用哪个账号执行 REVOKE DBA 才有效

只有本身拥有 DBA 角色且带 ADMIN OPTION 的用户才能撤销其他用户的 DBA 权限。常见可行账号是 SYS AS SYSDBASYSTEM(前提是它没被人为移除 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 级全局角色。

阅读全文
标签:Oracle

本文共计962个文字,预计阅读时间需要4分钟。

如何通过执行REVOKE命令在Oracle数据库中彻底撤销特定用户的DBA权限?

相关专题:

必须用具有 dba 权限的用户(如 syssystem)执行 revoke dba from user_name;,否则会报 ora-01031: insufficient privileges 错误。

用哪个账号执行 REVOKE DBA 才有效

只有本身拥有 DBA 角色且带 ADMIN OPTION 的用户才能撤销其他用户的 DBA 权限。常见可行账号是 SYS AS SYSDBASYSTEM(前提是它没被人为移除 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 级全局角色。

阅读全文
标签:Oracle