• 技术文章 >数据库 >Oracle

    oracle无法删除用户怎么办

    长期闲置长期闲置2022-03-03 11:09:48原创250

    方法:1、用“select sid,serial# from v$session where username=''”语句查询会话信息;2、用“alter system kill session ''”语句kill会话;3、重新删除用户。

    本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

    oracle无法删除用户怎么办

    测试环境的oracle数据库,随着软件开发的版本升级,需要重新刷数据库,因为随着测试环境使用一段时间之后,里面的数据会越来越多,有时候为了功能测试的方便,测试环境下的数据库里的数据会出现不一致的情况,这样对后续版本的测试会有一定的影像和干扰。为了避免以上情况的发生,一般会先清除当前数据库用户下面的所有对象,然后重新创建。但删除一个用户下面所有的对象及数据,需要先找出当前用户下有哪些对象,然后再删除,使用删除用户级联删除的方式,非常简单方便,但当前要删除的用户被使用连接,则不能删除,需要先杀掉会话,再删除。

    首先需要使用xshell工具连接上oracle数据库服务器(这里介绍的是linux环境下的,windows环境更为简单点),如果不是当前linux用户不是oracle用户,需要切换都oracle用户下,输入命令,su - oracle进行切换

    03.png

    在oracle用户下执行,sqlplus / as sysdba,即以管理员sys身份登录数据库,删除用户一般只有管理员账户才有的权限,如果只是查询数据库表以及数据的话,则只需要使用普通账户登录即可。连接上之后会提示Connected to: oracle databases等提示信息,并且出现的输入提示符变成了SQL>

    04.png

    然后输入删除用户的语句,DROP USER cqt CASCADE; CASCADE表示级联删除该用户下所有对象信息的意思。如图提示了,ORA-01940的错误,不能删除当前正在被连接的用户

    05.png

    如果还想继续删除的话,需要先查询出当前连接该用户的会话信息,然后杀掉,再执行删除操作。查询语句为:select sid,serial# from v$session where username='CQT';注意大小写的区别。如图查询出了多个连接该用户的会话信息,需要将以上查询到的用户会话都kill掉

    06.png

    kill掉会话的语句为:alter system kill session '15,19095';多个会话的,可以分别执行多次kill掉就可以了

    07.png

    以上会话被清除之后,再次执行删除用户的命令,如图所示,这次可以成功的删除了。因为此语句添加了级联删除的关键字,所以该用户下的所有对象和数据都会被删除的。

    08.png

    以上就完成了用户及对象的删除操作,如果是刷库操作,则可以开始重新创建用户然后在分配权限,执行数据库脚本,即可进行新的一轮版本的测试了。

    注意事项

    级联删除用户对象的时候一定要谨慎操作,防止删错用户或信息,可以在操作之前先行备份再操作。

    推荐教程:《Oracle视频教程

    以上就是oracle无法删除用户怎么办的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:oracle
    上一篇:oracle中not exists的用法是什么 下一篇:oracle怎么关闭审计
    Web大前端开发直播班

    相关文章推荐

    • oracle中case when的用法是什么• oracle中between的用法是什么• oracle怎么转换字段类型• 如果查询oracle的字符编码• oracle数据库怎么修改字段

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网