【问题标题】:How to drop user without table in oracleoracle如何删除没有表的用户
【发布时间】: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 中删除没有表的用户? 提前谢谢!

【问题讨论】:

    标签: oracle sql-drop drop-table


    【解决方案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 任何用户都可以看到(架构)。
      猜你喜欢
      • 1970-01-01
      • 2011-02-02
      • 2010-12-14
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 2019-01-24
      • 2014-12-23
      • 1970-01-01
      相关资源
      最近更新 更多