首頁  >  文章  >  資料庫  >  oracle無法刪除用戶怎麼辦

oracle無法刪除用戶怎麼辦

WBOY
WBOY原創
2022-03-03 11:09:484126瀏覽

方法:1、用「select sid,serial# from v$session where username=''」語句查詢會話資訊;2、用「alter system kill session ''」語句kill會話;3、重新刪除用戶。

oracle無法刪除用戶怎麼辦

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

oracle無法刪除使用者怎麼辦

測試環境的oracle資料庫,隨著軟體開發的版本升級,需要重新刷資料庫,因為隨著測試環境使用一段時間之後,裡面的數據會越來越多,有時為了功能測試的方便,測試環境下的資料庫裡的資料會出現不一致的情況,這樣對後續版本的測試會有一定的影像和乾擾。為了避免以上情況的發生,一般會先清除目前資料庫使用者下面的所有對象,然後重新建立。但刪除一個用戶下面所有的對象及數據,需要先找出當前用戶下有哪些對象,然後再刪除,使用刪除用戶級聯刪除的方式,非常簡單方便,但當前要刪除的用戶被使用連接,則不能刪除,需要先殺掉會話,再刪除。

首先需要使用xshell工具連接上oracle資料庫伺服器(這裡介紹的是linux環境下的,windows環境更為簡單點),如果不是當前linux用戶不是oracle用戶,需要切換都oracle用戶下,輸入指令,su - oracle進行切換

oracle無法刪除用戶怎麼辦

在oracle用戶下執行,sqlplus / as sysdba,以管理員sys身分登入資料庫,刪除使用者一般只有管理員帳戶才有的權限,如果只是查詢資料庫表以及資料的話,則只需要使用普通帳戶登入即可。連接上之後會提示Connected to: oracle databases等提示訊息,出現的輸入提示符號變成了SQL>

oracle無法刪除用戶怎麼辦

##然後輸入刪除使用者的語句,DROP USER cqt CASCADE; CASCADE表示級聯刪除該使用者下所有物件資訊的意思。如圖提示了,ORA-01940的錯誤,不能刪除當前正在被連接的用戶

oracle無法刪除用戶怎麼辦

#如果還想繼續刪除的話,需要先查詢出當前連接該用戶的會話訊息,然後殺掉,再執行刪除操作。查詢語句為:select sid,serial# from v$session where username='CQT';注意大小寫的差異。如圖查詢出了多個連接該用戶的會話信息,需要將以上查詢到的用戶會話都kill掉

oracle無法刪除用戶怎麼辦

#kill掉會話的語句為:alter system kill session '15,19095';多個會話的,可以分別執行多次kill掉就可以了

oracle無法刪除用戶怎麼辦

以上會話被清除之後,再次執行刪除用戶的命令,如圖所示,這次可以成功的刪除了。因為此語句新增了級聯刪除的關鍵字,所以該使用者下的所有物件和資料都會被刪除的。

oracle無法刪除用戶怎麼辦

以上就完成了使用者及物件的刪除操作,如果是刷庫操作,則可以開始重新建立使用者然後在分配權限,執行資料庫腳本,即可進行新的一輪版本的測試了。

注意事項

級聯刪除使用者物件的時候一定要謹慎操作,防止刪錯使用者或訊息,可以在操作之前先行備份再操作。

推薦教學:《

Oracle影片教學

以上是oracle無法刪除用戶怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn