zoukankan      html  css  js  c++  java
  • 将数据库设置为运行在限制模式下

    如果要维护数据库的结果或者要对数据库进行数据的导出导入操作时,此时应该尽量限制其他会话进程,保证数据库的操作运行在安全状态下。同时对使用数据的库的用户也可以起到避免读取脏数据的bug。将数据库上的其他用户进程kill,只保留具有restricted session权限的用户操作数据库,一般具有此权限的用户即为数据库管理员。操作步骤如下:

    一、通过数据字典v$session查看登陆到此数据库上的用户的sid(回话标志符)和serial#(序列号)

    select sid,serial#,username,type from v$session;

    获得想要杀死用户进程的sid 和serial#比如为sid=137 serial#=82 username=scott    type=user

    二、根据指定的sid和serial#杀死目标会话进程

    alter system kill session '137,82';

    三、设置数据库模式为限制模式

    alter system enable restricted session;

    四、此时如果以scott身份登陆数据库会提示错误:"登陆用户必须具有restricted session权限"

    这样就保证了在对数据库的结构和其他数据库对象进行修改时不会受到来自其他会话进程的干扰。

    注:如果不kill其他用户的会话进程直接使用alter system enable restricted session;语句将数据库设置为限制模式也是可以的,但是此时只能保证后续登陆的用户必须具有restricted session权限,已经登陆的用户不受到此限制可以继承正常的工作。

    另外可以在启动数据库时就用限制模式启动:startup restrict;

    数据库由限制模式切换到正常模式的sql:alter system disable restricted session;

  • 相关阅读:
    标准C++中的string类的用法总结
    JSON用法简介
    拷贝构造函数的调用时机
    define中的:#,##,#@
    一个二维码支持支付宝和微信支付(下)
    一个二维码支持支付宝和微信支付(上)
    【JAVA笔记】JAVA后端实现统一扫码支付:微信篇
    java生成二维码,读取(解析)二维码图片
    Java程序员的日常—— IOUtils总结
    Java: Map里面的键和值可以为空吗?
  • 原文地址:https://www.cnblogs.com/moonfans/p/3802365.html
Copyright © 2011-2022 走看看