【Oracle】删除正在连接的用户

1.查询用户的连接状态
Select username,sid,serial# from v$session where username=‘XY1027‘;

USERNAME                              SID    SERIAL#
------------------------------ ---------- ----------
XY1027                                 22          1
XY1027                                142          1

2.逐个删除
Alter system kill session‘22,1‘;

3.删除用户
drop user xy1027 cascade;

4.检查状态

如果在drop 后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill 了,

用如下语句查看:
-------------------------------------
select saddr,sid,serial#,paddr,username,status from v$session where username is not null

结果如下(以我的库为例):

saddr                     sid           serial#            paddr              username              status

--------------------------------------------------------------------------------------------------------

564A1E28              513           22974            569638F4        NETBNEW             ACTIVE
564A30DC              514          18183            569688CC        NETBNEW            INACTIVE
564A5644              516           21573            56963340        NETBNEW            INACTIVE
564B6ED0              531           9                   56962D8C        NETBNEW            INACTIVE
564B8184              532          4562               56A1075C        WUZHQ                KILLED

status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。

由此可见,WUZHQ这个用户的session已经被杀死。此时可以安全删除用户。

时间: 2024-10-15 03:08:58

【Oracle】删除正在连接的用户的相关文章

ORA-01940: 无法删除当前连接的用户

删除用户报错 SQL> drop user ODI_SRC CASCADE; drop user ODI_SRC CASCADE * 第 1 行出现错误: ORA-01940: 无法删除当前连接的用户 查看用户的连接状况 SQL> select username,sid,serial# from v$session where username='ODI_SRC'; USERNAME SID SERIAL# -------------------------------------------

【Oracle】无法删除当前连接的用户

一.查询数据库所有当前连接的用户 select username, sid, serial# from v$session; 二.从结果列表里找到对应的用户 alter system kill session '69,11660' ; --sid,serial

删除正在连接的用户

正在连接的用户不能删除,除非是确实要删除的话,否则请谨慎操作,操作步骤如下 1.select sid,serial#,username from v$session where user='USERNAME'; 2.alter system kill session 'sid,serial#'; 3.drop user username cascade;

ora01940 无法删除当前连接的用户

我用system这个用户登录oracle,想删除掉一个自己创建的用户user,在网上找到的方法都是说先查找到该用户连接的会话select username,sid,serial# from v$session where username='user';然后再kill掉alter system kill session'56,270'可是在kill掉之后drop user user cascade,但是kill之后总是会出现新的会话,不知道是怎么回事,最后想到先将用户的密码修改了 alter u

Oracle创建表空间、用户及DBLink等

以管理员身份进入Oracle: 1.查询其他表空间文件存放路径 select name from v$datafile; 2.创建表空间 create tablespace hrst datafile 'D:\ORACLE\ORADATA\HRST\HRST.DBF' size 100M autoextend on next 100M maxsize unlimited; 3.创建用户 create user vta identified by vta_2017 default tablespa

强制删除正在连接的Oracle用户,以删除SDE用户为例

. 有时候想强制删除一个已经连接的Oracle用户,不能直接删除,可以用Kill会话信息. 比如今天想删除一个被连接的SDE用户,可以用以下方法删除一个“正在被连接”的用户. 1.查看所有用户的会话信息. select sid,serial#,username from v$session; 2.查看某一个指定用户的会话信息. 比如我们要删除其中的SDE用户,则可以用以下命令查看SDE用户的会话信息. select  sid,serial# from v$session where userna

ORACLE无法删除当前连接用户

今天在做Oracle数据库是遇到ORACLE无法删除当前连接用户 ,经查找可用如下方法解决 . 在Oracle中删除用户时提示:ORACLE无法删除当前连接用户 可以用以下语句 Sql代码 SQL> select username,sid,serial# from v$session; USERNAME SID SERIAL# ------------------------------ ---------- ---------- 1 1 2 1 3 1 4 1 5 1 6 1 7 1 SYS

Oracle 表文件,表空间,用户,的创建 和删除

[本文谢绝转载,原文来自http://990487026.blog.51cto.com] 连接超级用户: [[email protected] ~]$ sqlplus /nolog SQL> conn /as sysdba Connected. 查数据文件: SQL> select * from v$dbfile;   4 /opt/oracle/app/oradata/orcl/users01.dbf  3 /opt/oracle/app/oradata/orcl/undotbs01.dbf

解决此问题:Oracle 删除用户时报 “必须指定 CASCADE 以删除 'SE'”,

这说明你要删除的oracle 用户"SE" 下面还有数据库对象,如 table, view 等,这样你删除用户时必须加选项 cascade:drop user se cascade; 表示删除用户SE,同时删除 SE 用户下的所有数据对象.还有一个办法就是先删除 se 下的所有数据对象,使 se 变成一个啥也没有的空用户,再 drop user se; 一般来说要具有 dba 权限的用户才能删除其他用户 解决此问题:Oracle 删除用户时报 "必须指定 CASCADE 以删