上周给大家布置查看登陆Oracle服务器上的用户进程信息,然后踢掉某些用户进程的的实验操作中,好多人小企鹅反馈,该实验无法做。是否无法操作该实验,答案在下面。以下内容将花费2-5分钟时间阅览。
实验楼的云环境下的Oracle数据库管理系统实例名为:xe,基于Linux字符环境,外界无法通过第三方SQL软件直接接入,虽然可以使用其他方式做端口映射出去,但是每次使用都要重新设置一番,倒也挺麻烦。
我的服务器上的Oracle数据库实例名为:ZZXY,已经设置好,允许他人通过第三方工具直接接入,但是,安全起见,接入的用户权限做了设置,普通权限下,破坏性实验指定不会让做,没办法,事务繁忙,没精力和时间天天维护,所以,理解万岁。
因此通过navicat,你是无法在我服务器上做alter system kill 操作的,即便是通过实验楼的sqlplus,接入我的服务器,你也无法操作。要问为什么,你懂的。
因此,还得把心思放在伟大的实验楼上,感谢实验楼给我们提供了如此周到的服务,环境已经布置的非常好,开放度也是非常高。尽管系统没有给我们提供DBA级别的账号,保不住我们猜测账号和密码啊,结果,就这样被我猜测出来了,希望实验楼的DBA们千万不要更改密码,否则,我们还不知道得猜到什么时候。猜也要掌握技巧,不然瞎猜肯定猜不到。
言归正传,我简单讲讲如何在Linux字符界面下实现多用户登陆,以及如何实现kill掉用户进程。
一、实现多用户登陆
1.使用实验楼给我们的账号登陆
尽管Oracle系统提示我们该system账号登陆进去使用的密码7天后失效,我们无需理会。
在此账号下,我们可以创建多个账号,一个不过瘾,就创建两个吧。看操作。
2. 创建两个账号,名为zzxy、zhangsan,密码随意
创建用户命令:
create user username identified by passwd;
3.授权登陆
命令格式:
grant create session to username;
以上操作,是我们创建了两个用户并赋予了登陆的权限,于是,我们可以使用这俩账号登陆了。
4. 正式登陆,且实现四个用户登陆
此处,我们将使用host命令多次返回Linux字符操作界面。
此处为第一次使用host命令,接着我们登陆zzxy账号:
再次host,接着使用张三账号登陆:
然后再次host,这次使用sys账号作为sysdba角色登陆:
查看登陆用户信息:
5. 查看登陆的用户进程:
指令格式:
select username,sid,serial# from v$session;
此页显示三个用户进程。
此页又显示两个用户进程,看得出system账号,我登陆了两次。
二、实现踢掉zzxy和zhangsan两个用户进程
踢用户进程的操作,是针对特定的sid号及serial#号,指令格式为:
alter system kill session 'sid,serial#';
通过查看获取zzxy用户进程sid和serial#号分别是248,2445,zhangsan用户进程sid和serial#号分别是366,53411,于是我们在sys账号下进行踢人操作。
如此,操作便完成了。
至于是否操作成功,你品,你再细品。反正这个实验肯定是能做了。
三、结语
以上kill用户进程的实验虽然做完了,其实是无法真正实现。毕竟是在不同用户登陆到Oracle数据库中,用户进程是一直存在的,然后host命令执行之后的状态下,使用sqlplus,因此,这就是Linux环境下的嵌套进程,恐怕是无法真正踢掉的。这一点从原理上,我们应该要有正确理解的,仿佛是在一个进驻的内存中做了虚拟环境,之间的关系是错综复杂的。这一点上,我们可以在Linux字符界面下使用ps -aux 查看进程消息。
该实验,就到此吧。