ORCALE 删除用户 提示无法删除当前连接的用户 PLSQL

ORCALE 删除用户

1、通过相关语句进行删除

a. 直接删除:

	drop user xx cascade;

b. 提示无法删除当前连接的用户

	--锁定用户(防止再有其他连接产生)
 	alter user XXX account lock;
	--查询进程号 (获取sid,serial;注意大小写)
	SELECT * FROM V$SESSION WHERE USERNAME='XXX';
	--删除对应的进程
	alter system kill session 'sid,serial'
	--删除对应的用户
	drop user xx cascade

c. 删除进程时提示对应的进程号不存在,且每次搜索出的进程号都不一样

	--获取jobs
	select * from dba_jobs; 
	--删除库中的定时任务 (243为dba_jods搜索结果中的job字段)
	begin
	  dbms_job.remove(243);
	  commit;
	end;
	删除掉对应的job后就可以再去删除用户了,注意要以job所属用户登录才可以去删除job

建议通过2c步骤来删除job

2. 通过PLSQL进行删除

a. 直接删除

在这里插入图片描述
Objects窗口->Users内找到需要删除的用户,右键drop删除即可;

b. 提示无法删除当前连接的用户,如下图

在这里插入图片描述
可以使用1b的方式剔除登录的用户

c. 删除进程时提示对应的进程号不存在,且每次搜索出的进程号都不一样

查看会话
在这里插入图片描述找到要删除的会话,发现有个Action内有个正在运行的job
在这里插入图片描述登录到要删除的用户,删除掉那个正在运行的作业
在这里插入图片描述
注释:
无法登录锁定的用户? alter user XXX account unlock; --解锁用户
作业无法删除? 将当前连接设为主链接

删掉之后重新以管理员用户登录查看会话,可以看到该用户只有一个活动的连接,通过1b步骤,剔除该连接,然后删除之。
在这里插入图片描述