oracle如何删除用户?

Posted

技术标签:

【中文标题】oracle如何删除用户?【英文标题】:How to delete a user in oracle? 【发布时间】:2018-12-07 15:00:49 【问题描述】:

我的问题是关于删除 Oracle 中的用户。我收到一个错误,请尝试使用 Oracle sqlplus 和开发人员。

oracle sql 开发者:

connection in the Oracle SQL developer

Drop user HOLA CASCADE;

错误: 错误从命令的第 13 行开始: 删除用户 HELLO CASCADE 错误报告 - ORA-00604: 递归级别 1 SQL 发生错误 ORA-00942: 表或视图不存在 00604. 00000 - “错误发生在递归 SQL 级别 %s” * 原因:处理递归 SQL 语句时出错 (适用于内部字典表的语句)。 * 动作:如果堆栈中描述的情况如下错误 它可以被纠正,做它;否则,请联系 Oracle 支持。

sqlplus:

Enter user-name: sys as sysdba
Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> Drop user "HOLA" CASCADE;
Drop user "HOLA" CASCADE
          *
ERROR at line 1:
the user 'HOLA' does not exist

consult in the oracle to verify the user

【问题讨论】:

该用户的真实姓名是什么?您正在显示 HOLA nad HELLO,使用大写,大写包含在双引号中......如果您发布了真正发生的事情,这将有所帮助。不知何故,我怀疑甲骨文将 HOLA 翻译成 HELLO。 用户是“HOLA”,用于测试。 Hola 是西班牙语的“你好”,不是吗?我认为那里正在进行一些翻译。您确定用户实际上仍然存在吗?你能查询 users 系统表并告诉我们你实际上有这样一个用户吗? Select * from USER_USERS where username = 'HOLA'; 如果你消除了级联;您是否收到指示由于存在依赖对象而无法删除用户的错误? select * from all_users where username = 'HOLA'; 【参考方案1】:

ORA-600 type error 是 Oracle 程序异常的通用内部错误号。表示一个进程遇到了 一种低级的意外情况。

你发出的命令正常没有问题。我怀疑您无法访问的DDL trigger,很可能位于systemsys 用户中。也许至少有一个before ddl on databasebefore drop on database 类型的触发器。如果它不是生产数据库,或者如果您的数据库的日常操作和任务没有问题,那么您的DB Admin 可能会禁用这些触发器。

【讨论】:

以上是关于oracle如何删除用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除Oracle数据库用户及用户下的实体

oracle只有某用户权限,要删除该用户下的所有对象如何操作

如何彻底删除oracle创建的用户和表空间

oracle如何删除用户?

oracle如何删除没有表的用户

oracle数据库,如何删除指定用户名下的所有数据?