上周给大家布置查看登陆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;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KqSUenNY-1583661536377)(C:\Users\marco\AppData\Roaming\Typora\typora-user-images\1583659458275.png)]](https://i-blog.csdnimg.cn/blog_migrate/bc59119e4a2a1e55e80e9486544f7ea2.png)
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 查看进程消息。


该实验,就到此吧。
本文详细介绍在Linux环境下,如何利用Oracle数据库管理系统实现多用户登录,并通过SQL命令查看及踢除用户进程。文章首先介绍了实验环境的搭建,包括账号创建与权限设置。随后,演示了在字符界面下创建用户、实现多用户同时在线的方法,以及如何使用SQL语句查询和踢除指定用户进程。

309

被折叠的 条评论
为什么被折叠?



