为何锁定Oracle用户后,其现有会话仍可执行查询?
Oracle用户锁定后现有会话仍可执行操作的原因
锁定仅限制新会话:执行
alter user bichvan account lock只会阻止该用户创建新的数据库连接会话,对已经处于活跃状态的会话(比如你提到的SQL Developer中已打开的会话)没有任何限制。这些已建立的会话会继续正常运行,直到用户主动断开连接,或者会话因超时被数据库自动回收。Oracle的权限控制逻辑:用户锁定是针对登录认证环节的管控,只有当用户发起新的登录请求时,数据库才会校验账号状态并拒绝锁定用户的登录。对于已经完成认证、成功建立的会话,数据库不会追溯性地剥夺其操作权限。
立即终止现有会话的方法:如果需要立刻停止bichvan现有会话的操作,需要手动终止对应的会话:
- 查询该用户的活跃会话信息:
SELECT sid, serial# FROM v$session WHERE username = 'BICHVAN'; - 根据查询结果执行终止命令(替换实际的sid和serial#数值):
若会话无响应,可添加ALTER SYSTEM KILL SESSION 'sid,serial#';IMMEDIATE参数强制终止:ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
- 查询该用户的活跃会话信息:
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

