暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

(ORA-01940)-数据库用户session连接到数据库导致无法删除此用户

原创 huawei 2021-03-02
342

(ORA-01940)-数据库用户session连接到数据库导致无法删除此用户

现象描述

删除数据库用户失败,系统显示如下错误信息:

SQL> drop user username cascade;

ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected
复制
说明:
username表示数据库用户名。

可能原因

该数据库用户有session连接到数据库。

处理步骤

  1. oracle用户登录数据库所在机器。
  2. sysdba用户连接数据库。

    % sqlplus / as sysdba

  3. 查询该用户的session。

    SQL> select username, sid, serial# from v$session;

    系统显示如下信息:
    USERNAME                              SID    SERIAL#
    ------------------------------ ---------- ----------
                                          244        154
    SYS                                   247        940
                                          249         20
                                          250         11
                                          251          2
                                          255         40
                                          258          1
                                          260          6
                                          289          1
                                          290          1
                                          291          1
    
    USERNAME                              SID    SERIAL#
    ------------------------------ ---------- ----------
                                          292          1
                                          293          1
                                          294          1
                                          295          1
                                          296          1
                                          297          1
                                          298          1
                                          299          1
                                          300          1
                                          301          1
                                          302          1
    
    USERNAME                              SID    SERIAL#
    ------------------------------ ---------- ----------
                                          303          1
                                          304          1
                                          305          1
                                          306          1
                                          307          1
                                          308          1
                                          309          1
                                          310          1
                                          311          1
                                          312          1
                                          313          1
    
    USERNAME                              SID    SERIAL#
    ------------------------------ ---------- ----------
                                          314          1
                                          315          1
                                          316          1
                                          317          2
                                          319          5
                                          320          5
                                          321          1
                                          322          1
                                          323          1
                                          324          1
                                          325          1
    
    USERNAME                              SID    SERIAL#
    ------------------------------ ---------- ----------
                                          326          1
                                          327          1
                                          328          1
                                          329          1
                                          330          1
                                          331          1
                                          332          1
                                          333          1
                                          334          1
    SYS                                   335          5
    
    54 rows selected.
    
    复制
  4. 删除该用户的session。

    SQL> alter system kill session 'sid,serial#';

    说明:
    sidserial#应该填写3实际查询出来的结果。
  5. 查看session的状态,验证session是否被删除。

    SQL> select saddr, sid, serial#, paddr, username,status from v$session where username is not null;

    • 如果用户的session状态status值为inactive,说明没有被删除。请执行4
    • 如果用户的session状态status值为killed,说明已经删除。
  6. 删除该用户。

    SQL> drop user username cascade;

    删除用户成功,系统显示如下信息:
    User dropped.
    复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论