ORA-01940: cannot drop a user that is currently connected 问题解析

向右看齐 2022-05-05 15:31 649阅读 0赞

删除数据库用户的时候经常会遇到这样的错误;

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’;

  1. 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;

系统已更改。

发表评论

表情:
评论列表 (有 0 条评论,649人围观)

还没有评论,来说两句吧...

相关阅读