zoukankan      html  css  js  c++  java
  • 删除oracle数据库用户

      手工删除ORACLE数据库用户时常会出现会话进程仍在使用导致删除失败的情况。需要查询会话并将会话删除才能成功将数据库用户删除,比较不方便。

    适用场景

      自动删除oracle数据库用户

    基本知识

      oracle字符串拼接符(||)及单引号使用的2种方式。

      1、select 'lion'||','||'tester' from dual; #output: lion,tester

      2、SELECT 'ALTER SYSTEM KILL SESSION '''||t.sid ||','||t.SERIAL#||''' IMMEDIATE;' FROM V$SESSION t; # 使用两个连续的单引号表示字符串中一个单引号

      3、SELECT 'ALTER SYSTEM KILL SESSION '||chr(39)||t.sid ||','||t.SERIAL#||chr(39)||' IMMEDIATE;' FROM V$SESSION; #chr(39)表示单引号

      shell组合语句执行(左大括号右边有空格,最后一条命令结束需要带分号;)

      1、[ -f /etc/passwd ] && { printf "File exist. ";exit;}

    设计思路

      1、判断传入待删除的用户是否存在于数据库中,如果不存在,退出脚本。如果存在,执行下一步。

      2、锁定待删除用户,拒绝新的外部连接的访问。

      3、循环查找当前用户中是否有未断开的会话,如果有,获取SID,SERIAL#,然后kill掉。

      4、删除数据库用户。根据成功或者失败返回相应提示。

    使用方法

      1、下载代码:drop_db.sh,上传到ORACLE用户任意目录下。

      2、执行chmod + x drop_db.sh赋予脚本可执行权限。

      3、执行drop_user.sh [dbname1] [dbname2] .. [dbnameN],删除数据库用户。

  • 相关阅读:
    java自学
    java自学
    java自学
    java自学
    Interesting Finds: 2009 11.17 ~ 11.22
    Interesting Finds: 2009 10.09 ~10.13
    Interesting Finds: 2009 10.01 ~ 10.08
    Interesting Finds: 2009 10.14 ~ 10.21
    Interesting Finds: 2009 11.01 ~ 11.08
    Interesting Finds: 2009 10.25 ~ 10.31
  • 原文地址:https://www.cnblogs.com/linyfeng/p/7538339.html
Copyright © 2011-2022 走看看