ORA-01940: cannot drop a user that is currently connected 问题解析
删除数据库用户的时候经常会遇到这样的错误;
ORA-01940: cannot drop a user that is currently connected
原因是有程序在连接我们需要删除的用户,我们删除用户之前一定要先把连接断掉;
1、查找帐号下哪些连接在运行:
SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME=’USERNAME’;
注意:此处需要大写
SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME=’SSTEST’;
SID SERIAL\#
-————- —————
13741813
33525993
46458747
5009153
53150402
6299264
63111237
66436180
8 rows selected.
2、删除用户进程;
SQL>ALTER SYSTEM KILL SESSION ‘137,41813’;
System altered.
SQL>ALTER SYSTEM KILL SESSION ‘33525993;
System altered.
3、重新查看用户连接,并确认无连接在使用
SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME=’SSCRM’;
4、删除用户
drop user sstest cascade ;
或者是
根据文档的描述,如果数据库处于RESTRICTED SESSION状态,则禁止用户采用NET服务方式登陆,而必须在服务器上直接登陆,但是测试发现,Oracle并没有这个限制。
SQL> conn / as sysdba已连接。
SQL> alter system disable restricted session;
系统已更改。
SQL> conn test/test@test11g已连接。
SQL> conn / as sysdba已连接。
SQL> alter system enable restricted session;
系统已更改。
还没有评论,来说两句吧...