在oracle 11G中,我想永久地删除用户,即不应保留该用户的踪迹,我不应该得到这样的“现有对象”错误 - ORA-00955:现在的对象已经使用了name我尝试用其表格重新创建该用户。
请帮我这样做。 感谢。
编辑 -
使用表和列创建用户的命令
CREATE USER Products identified by discounted
GRANT ALL PRIVILEGES TO Products
CREATE TABLE Cars(Brand varchar(25),Model varchar(25))
以上是, 完全删除用户并完全重新创建的命令
DROP USER PRODUCTS CASCADE
CREATE USER Products identified by discounted
GRANT ALL PRIVILEGES TO Products
CREATE TABLE Cars(Brand varchar(25),Model varchar(25))
导致异常 -
java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing object
答案 0 :(得分:11)
你没有说你登录的用户是什么,但我认为它是SYS或者具有很多神圣特权的人。
在最后一行中,您将在当前架构中创建表CARS
,而不是在产品架构中。你可能想要的是:
CREATE TABLE products.cars(brand varchar2(25), model varchar2(25));
汽车表可能仍然存在于您之前尝试的当前架构中。您可以通过以下方式判断它是否存在:
SELECT owner, object_name, object_type FROM all_objects WHERE object_name = 'CARS';
作为旁注,将所有权限授予普通用户并不是一个好主意,但我认为这是用于测试程序。此外,最好使用VARCHAR2
代替VARCHAR
。
答案 1 :(得分:-1)
你的问题过于笼统。根据我的理解,如果您使用以下脚本,则可以删除用户创建的所有对象 -
drop user USERNAME cascade;
为了成功执行此操作,您不应该为此用户打开连接。