oracle如何删除没有表的用户

Posted

技术标签:

【中文标题】oracle如何删除没有表的用户【英文标题】:How to drop user without table in oracle 【发布时间】:2013-04-09 09:00:11 【问题描述】:

如何在 oracle 中删除没有表的用户?

 create user andi identified by andi; 
 alter user andi quota 10m on users; 
 grant connect to andi; 
 grant create table to andi;

 conn andi;

 create table mahasiswa( idmhs number(3) primary key, nama varchar(20),
    nim number(7), jurusan varchar(20) );

 insert into mahasiswa values (101, 'Budi', 0881103, 'TI');

 drop user andi cascade; ---> table mahasiswa is also deleted.

如何在 oracle 中删除没有表的用户? 提前谢谢!

【问题讨论】:

【参考方案1】:

你不能这样做。

桌子属于 andi,当你放下 andi 时,你也会放下它的所有物品

如前所述(@Steven Wolfe)为表创建一个用户,并为其他用户授予权限。

【讨论】:

【参考方案2】:

您可以创建mahasiswa 表并以其他用户为所有者,然后授予用户andi 所需的任何权限(SELECT, INSERT, UPDATE, DELETE)。

我还将创建一个同义词,这样您就不必不断地从 andi 架构中引用表和所有者架构,例如:OTHERUSER.mahasiswa。作为andi 用户执行以下操作:

CREATE SYNONYM mahasiswa FOR OTHERUSER.mahasiswa

希望对您有所帮助。

【讨论】:

我从用户 andi 创建了“CREATE SYNONYM mahasiswa FOR OTHERUSER.mahasiswa”?但它说权限不足..所以我从dba创建'grant create synonym to andi'。名称已被现有对象使用,但我在 dba 用户上没有任何表 mahasiswa.. @Grace 您应该在架构中创建同义词,该同义词将访问同义词引用的对象,或者您可以CREATE PUBLIC SYNONYM 任何用户都可以看到(架构)。

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

Oracle数据库 之 如何彻底删除表

oracle删除关联表的数据,如何删除啊!下面是我写的SQL,不知道哪里出问题了,就是运行不了!

oracle怎样恢复删除的数据文件

Oracle如何查询一个用户所创建的表 以及 如何查询一张表的主人

如何在 EF 代码优先中禁用链接表的级联删除?

如何删除没有临时表的 MySQL 表中的所有重复记录