首页 > 数据库 >oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”

oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”

时间:2023-05-05 16:57:10浏览次数:40  
标签:username 删除 用户 session kill oracle NETBNEW

Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1、先锁定用户、然后查询进程号,最后删除对应的进程、在删除对应的用户 SQLalter user XXX account lock; SQLSELECT * FROM V$SESSION WHERE USERNAME='LGDB';

Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下:

1、先锁定用户、然后查询进程号,最后删除对应的进程、在删除对应的用户

SQL>alter user XXX account lock;

SQL>SELECT * FROM V$SESSION WHERE USERNAME='LGDB';

SQL>alter system kill session 'xx,xx'

SQL>drop user xx cascade

2.shutdown掉数据库,再重启

具体查询进程号,最后删除对应的进程步骤如下

1) 查看用户的连接状况

select username,sid,serial# from v$session

如下结果:

username         sid        serial#

NETBNEW         513         22974

NETBNEW         514         18183

NETBNEW         516         21573

NETBNEW         531         9

ts             532         4562

(2)找到要删除用户的sid,和serial,并删除

如:你要删除用户'ts',可以这样做:

alter system kill session'532,4562'

(3)删除用户

drop user ts cascade

(**)如果在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。

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

标签:username,删除,用户,session,kill,oracle,NETBNEW
From: https://www.cnblogs.com/lcword/p/17374610.html

相关文章

  • Oracle使用Impdp导入dmp文件的详细过程
    这一天为了导入这个Oracle的dmp文件,简直就是血泪史,因本人对Oracle并不是很会,随意踩了很多小白会踩的坑,因此特意记录一下过程,防备下次的使用。1、首先将你需要的dmp文件准备好,将其放在Oracle安装目录的任意位置,但是如果你想按照我的步骤来,就和我安装到相同的目录,否则会和第五步的......
  • Oracle 强行断开用户连接的方法
    1、查找目标用户的当前进程selectsid,serial#fromv$sessionwhereusername='test';2、使用上述语句会返回一个进程列表,每行有两个数字,用数字替代下面的sid和serialaltersystemkillsession'sid,serial';3、执行kill语句altersystemkillsession‘9,154......
  • MySQL查出所有的主外键关系、级联关系,并记录起来,删除所有的外键关系,根据记录重新建立
    查出所有的主外键关系并记录起来可以通过查询information_schema数据库中的REFERENTIAL_CONSTRAINTS表来获取所有的主外键关系。以下是查询语句:`SELECTK.CONSTRAINT_NAME,--外键约束名K.TABLE_NAME,--子表外键所在表名K.COLUMN_NAME,--外键所在列名......
  • 保障用户买到限量版玩具,泡泡玛特用AIGC加持的验证码防范羊毛党
    限量版玩具一直是消费者关注的重点,却容易被羊毛党抢走。羊毛党将抢到玩具加价出售给其他消费者,由此损害消费者利益,也给商家带来损失。羊毛党为什么比消费者更容易抢到限量版玩具?主要是因为下单速度不同。同样一件商品,A比B早1秒钟,则A能够购买到,B则无法购买到。在下单速度方面,人靠......
  • Linux 批量修改目录权限,用户组和所有者;kill指定端口
     例:修改data目录以及该目录下所有文件的权限可读可写。chmod-R777data/ 例:修改data目录以及该目录下所有文件的用户组为:"shaun".chownshaundata/-R 例:修改data目录以及该目录下所有文件的所有者为:"shaun".chgrpshaundata/-R  #这里端口号均以8......
  • 使用StackExchange.Redis组件C#模糊删除模糊查找
     C#StackExchange.Redis模糊删除模糊查找 ///<summary>///模糊查找///</summary>///<paramname="key"></param>publicList<XJDataDll.Tag.Point>SelectTags(stringpattern){......
  • MySQL 删除数据库
    MySQL删除数据库使用普通用户登陆MySQL服务器,你可能需要特定的权限来创建或者删除MySQL数据库,所以我们这边使用root用户登录,root用户拥有最高权限。在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。drop命令删除数据库drop命令格式:dropd......
  • Windows 切换为 Administrator 用户
    1.以管理员身份打开cmd2.输入netuseradministrator/active:yes(意思是添加Administrator超级管理员)3.打开win+r,输入controluserpasswords2(可查看是否添加成功)......
  • CSC8016用户场景
    CourseworkCSC8016UseCaseScenarioWewanttoimplementavirtualshoppingsystem,whetherthethreadsareeitherclientsusingthewebapp,orclientsbuyingproductsonthephysicalshopusingthemobileapp.Thelifecycleofanyclientinteractionissum......
  • [Oracle] 收缩表,释放空间
    收缩段消除空间碎片的方法有两种:方法1:使用Move命令altertabletable_namemove注意:1)move操作会锁表。(如果是很小的表,可以在线做。如果是大表一定要注意,会长时间锁表,只能查询,影响正常业务运行)2)move操作会使索引失效,一定要rebuild。(因为move操作会改变一些记录的ROWI......