1.創建兩個測試用戶進行實驗
執行命令如下:
create user test1 identified by 1;
create user test2 identified by 1;
grant dba to test1;
grant dba to test2;
如下圖,我創建了兩個用戶,並授予兩個用戶dba角色。
2,windows下使用cmd連接oracle用戶
執行如下命令:
sqlplus test1/1@192.168.1.202:1521/orcl
sqlplus test2/1@192.168.1.202:1521/orcl
如下圖示例:
3.查看用戶session,相關信息,
執行如下語句:
select sid,serial#,username,status,osuser,machine,action from v$session where username like '%TEST%'
如下圖:
查詢到兩個user的session,和osuser信息。
此時我刪除用戶是刪除不了的
要是兩個正在連接的用戶,斷開數據庫,才能刪除用戶,
執行命令如下:
alter system disconnect session 'sid,serial#' immediate ;(立即斷開用戶session,未完成的事務自動會滾。)
alter system disconnect session 'sid,serial#' post_transaction;(事務斷開用戶session,等待未完成的事務提交后,斷開連接。)
首先演示immediate 終止會話,請注意:此操作會回滾未完成的事務,執行如下圖
查看windows下cmd連接情況,課件執行查詢時候提示會話已經被終止。
最后我們首先連接使用之前創建的用戶連接到oracle
創建一個表,執行插入幾條數據,不執行提交,此時使用事務型終止會話,
演示如下圖:
我們登錄到test2用戶,
首先我們創建了一個表表名稱為t1,之后創建一個序列,執行插入將序列的下一個值,和當前用戶名稱,當前系統日期插入到表中,執行了三次插入,未提交,
此時我們執行事務終止用戶會話。
如下圖:
查詢v$session視圖,獲得test2用戶的會話信息,
執行事務會話終止成功。
查看連接的test2會話情況:(此時事務未提交,仍可以執行任何查詢信息)。
提交事務,再一次執行查詢,提示會話被終止,(此類事務終止較安全,推薦)