11.1.4 如何删除用户

一个用户不再访问数据库系统时,应该将这个用户及时地从数据库中删除,否则可能会有安全隐患。一个更好的做法是先将这个用户锁定,过一段时间如果确定这个用户不再需要,再将其删除。

删除用户的操作一般由sys用户完成,也可以由具有DROP USER权限的用户来完成。一个用户被删除后,这个用户本身的信息,以及它所拥有的数据库对象的信息都将从数据字典中被删除。删除用户的命令是DROP USER。这条命令的语法格式为:


DROP USER用户名;


例如,要删除用户USER1,可以执行下面的DROP USER语句:


SQL>DROP USER user1;


需要注意的是,如果在一个用户的模式中已经包含一些数据库对象,那么这个用户是不能被直接删除的,在删除用户时系统将显示类似以下的信息:


ERROR位于第1行:

ORA-01922:必须指定CASCADE以删除'SCOTT'


出现错误信息的原因是在用户scott的模式中包含某些数据库对象,所以不能直接删除。如果要强制删除用户,可以在DROP USER命令中使用CASCADE选项,这样用户以及所拥有的数据库对象将一起被删除。例如,删除用户scott可以执行下面的语句:


SQL>DROP USER scott CASCADE;