多创建了一个用户,想要给它删除掉
一 上执行过程,确实删除成功了
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsSQL> DROP USER c##xyt CASCADE;
DROP USER c##xyt CASCADE
*
第 1 行出现错误:
ORA-01940: 无法删除当前连接的用户SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'c##xyt';未选定行SQL> ALTER USER C##XYT account LOCK;用户已更改。SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'c##xyt';未选定行SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'C##XYT';SADDR SID SERIAL# PADDR
---------------- ---------- ---------- ----------------
USERNAME STATUS
------------------------------ --------
00007FF838443EA0 3 36748 00007FF8352B70C0
C##XYT INACTIVE00007FF83643B740 185 50332 00007FF8373A4D08
C##XYT INACTIVE00007FF83850AD70 395 15275 00007FF8384087D0
C##XYT INACTIVESQL> alter system kill session '3,36748';系统已更改。SQL> alter system kill session '185,50332';系统已更改。SQL> alter system kill session '395,15275';系统已更改。SQL> DROP USER C##XYT CASCADE;用户已删除。SQL>
二 步骤解析
2.1 锁定账户
将要删除的用户给锁定掉
SQL> ALTER USER C##XYT account LOCK;用户已更改。
2.2 查询待连接用户的进程号
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'C##XYT';
正常来说都会有进程的,没有可能是因为
2.3 根据进程号kill掉进程
SQL> alter system kill session '3,36748';系统已更改。SQL> alter system kill session '185,50332';系统已更改。SQL> alter system kill session '395,15275';系统已更改。
2.4 级联删除掉用户
SQL> DROP USER C##XYT CASCADE;用户已删除。
三 注意事项
oracle似乎要考虑大小写,比方说,我上头第一次查进程号时,查不到
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'c##xyt';未选定行SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'C##XYT';SADDR SID SERIAL# PADDR
---------------- ---------- ---------- ----------------
USERNAME STATUS
------------------------------ --------
00007FF838443EA0 3 36748 00007FF8352B70C0
C##XYT INACTIVE00007FF83643B740 185 50332 00007FF8373A4D08
C##XYT INACTIVE00007FF83850AD70 395 15275 00007FF8384087D0
C##XYT INACTIVE
如果仍有不明白,可以私信讨论
这个用户没了