1. 程式人生 > >oracle中使用者刪除不了,提示“無法刪除當前已連線的使用者”

oracle中使用者刪除不了,提示“無法刪除當前已連線的使用者”

 1.alter user XXX account lock;SELECT * FROM V$SESSION WHERE USERNAME='LGDB';alter system kill session 'xx,xx'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 
WUZHQ             532              4562 

(2)找到要刪除使用者的sid,和serial,並刪除 

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

如:你要刪除使用者'WUZHQ',可以這樣做: 



alter system kill session'532,4562' 



(3)刪除使用者 

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

drop user username 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

1.你可以用 alter user 使用者ID account unlock 先解開這個使用者鎖定

2.這個機制是在使用者的profile中設定,profile主要是對系統資源和使用者囗令的管理,你可以開啟檢視,裡面有個 FAILED_LOGIN_ATTEMPTS 引數,你還可以結合其它的引數一起使用來管理資源和囗令。系統有個預設的profile叫default

給個示例:
1.資源的
create profile luck_prof limit
sessions_per_user 8
cpu_per_session 16800
logical_reads_per_session 23688
connect_time 268
idle_time 38;
2.囗令的,如修改 default 
alter profile default limit
password_life_time 60
password_grace_time 10
password_reuse_time 1800
failed_login_attempts 3
password_lock_time 1/1440;

然後再建立或修改使用者時指定一個profile如:

create user wuser
identified by wuser
.......
profile luck_prof ;


希望以上能給你提供解決問題的方向