oracle终止用户会话

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会话情况:(此时事务未提交,仍可以执行任何查询信息)。

提交事务,再一次执行查询,提示会话被终止,(此类事务终止较安全,推荐) 

 

 

posted @ 2018-01-04 22:14  你的孤独虽败犹荣  阅读(5694)  评论(0编辑  收藏  举报