日期:2014-05-17  浏览次数:20798 次

drop user问题?
1、plsql下怎么查询哪些是自己建立的用户?

2、users下是不是谁登陆都能看到所有的用户?

3、表空间和用户都要分别drop,用户不是属于表空间么,把表空间先drop掉,users下还有这个表空间下的用户?

4、表属于用户,把用户drop掉了,用户下的表是不是也drop了(oracle处理的)?


------解决方案--------------------
1. plsql下怎么查询哪些是自己建立的用户?
回答:有难度。

2. users下是不是谁登陆都能看到所有的用户?
回答:左侧的Object子窗口中始终显示所有用户

3. 表空间和用户都要分别drop,用户不是属于表空间么,把表空间先drop掉,users下还有这个表空间下的用户?
回答:表空间不属于特定的用户。所以不会在drop表空间时,用户也被drop了。

4.表属于用户,把用户drop掉了,用户下的表是不是也drop了?
回答:不是的。必须指定CASCADE子句才会在删除用户时同时删除表。
例:drop user scott cascade;

------解决方案--------------------
你好,楼主,你对这些概念可能有些模糊,试着回答你的问题:
1、plsql下怎么查询哪些是自己建立的用户?
select * FROM dba_users 

2、users下是不是谁登陆都能看到所有的用户?
答,是的,语句:SELECT * from v$session

3、表空间和用户都要分别drop,用户不是属于表空间么,把表空间先drop掉,users下还有这个表空间下的用户?
答,概念理解有误,用户和表空间并非是从属关系。
应该这样理解:实例下有用户和表空间,用户经授权则可以访问某表空间,表空间是存数据的。所以,删不删表空间,对用户本身没有干扰,而这个表空间里若是存储有该用户的数据,那只是数据丢失了而已。
我理解这个概念,把一个数据库实例看成一台电脑,把表空间当成电脑的硬盘,数据库中的用户当做电脑操作系统的用户,这个用户有权限访问F盘,你删掉了这块F盘,操作系统的用户当然还是存在的,只是这个用户下F盘的文件数据都没了。

4、表属于用户,把用户drop掉了,用户下的表是不是也drop了(oracle处理的)?
答,这个可以明确的告诉你,是的,不仅是表,该用户其他诸如视图、过程、方法等逻辑实体全部drop了。
语句:drop user XXX cascade;
------解决方案--------------------
3.表空间和用户都要分别drop,用户不是属于表空间么,把表空间先drop掉,users下还有这个表空间下的用户?

用户是用户,表空间是表空间,当你的表空间删除之后你的用户还可以指定使用其他表空间,只是你存在之前表空间的那部分数据会丢失,没有用户属于表空间的说法,只有指定某个用户使用哪个表空间.
如: alter user userName default tablespace tbs_user01;

4、表属于用户,把用户drop掉了,用户下的表是不是也drop了(oracle处理的)?
这个是肯定的,只要是属于你用户的所有对象,用户不存在了其他的也就不可以以其他形态存在.

drop user userName cascade ;--这样会清到你要删除的用户下所有对象