删除資料庫使用者的時候經常會遇到這樣的錯誤;
ORA-01940: cannot drop a user that is currently connected
原因是有程式在連接配接我們需要删除的使用者,我們删除使用者之前一定要先把連接配接斷掉;
1、查找帳号下哪些連接配接在運作:
SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='USERNAME';
注意:此處需要大寫
SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='SSTEST';
SID SERIAL#
---------- ----------
41813
25993
58747
9153
50402
9264
11237
36180
rows selected.
2、删除使用者程序;
SQL>ALTER SYSTEM KILL SESSION '137,41813';
System altered.
SQL>ALTER SYSTEM KILL SESSION '33525993;
System altered.
3、重新檢視使用者連接配接,并确認無連接配接在使用
SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='SSCRM';
4、删除使用者
drop user sstest cascade ;
-------------------------------------------------------------------------------------------------------------------------------------------
還有另外一種很暴力的方式:
1.将lsnrctl監聽程式關閉,不允許連接配接再進來
2.關閉資料庫并啟動shutdown immediate --------> startup
3.此時删除使用者