删除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.\n";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],删除数据库用户。
删除oracle数据库用户的更多相关文章
- Linux删除ORACLE数据库用户失败提示ORA-01940解决方法
操作环境 SuSE11+Oracle11gR2 问题现象 删除ORACLE数据库用户失败,提示ORA-01940: cannot drop a user that is currently conne ...
- 删除oracle数据库用户的dba权限(当出现同一用户DBA可以登录,normal不能登录)“无法对SYS拥有的对象创建触发器”
系统报错:“无法对SYS拥有的对象创建触发器”,搞不懂是什么原因了,到底这触发器要用什么用户才能建立啊? ORA-04089: 无法对 SYS 拥有的对象创建触发器 第一种方式: 首先,用sys用户a ...
- 简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS
简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS:1.Toad工具用oracle最大权限用户登录system2.查看正在使用UPAY3LINGXI_YS的进程select * fr ...
- Oracle 数据库用户管理
Oracle 数据库用户管理 Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限 ...
- Oracle数据库用户数据完整备份与恢复
使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1 PL/SQL->工具->导 ...
- 删除oracle数据库[转]
--===================== -- 手动删除oracle数据库 --===================== 在很多情况下,或无法使用dbca工具的时候,我们需要手动来删除数据库. ...
- Oracle数据库---用户与角色
Oracle数据库---用户与角色 2019年02月26日 10:56:10 俊杰梓 阅读数:21 标签: 数据库 更多 个人分类: 数据库 版权声明:版权所有,转载请注明出处.谢谢 https: ...
- Linux删除oracle数据库
手动的删除ORACLE数据库. 本人的做法: su - root lsnrctl stop kill -9 `ps -ef |grep oracle |grep -v grep |awk '{prin ...
- SQLServer之删除用户自定义数据库用户
删除用户自定义数据库用户注意事项 不能从数据库中删除拥有安全对象的用户. 必须先删除或转移安全对象的所有权,才能删除拥有这些安全对象的数据库用户. 不能删除 guest 用户,但可在除 master ...
随机推荐
- vue todolist 封装localstorage
//封装操作localstorage本地存储的方法 模块化的文件 // nodejs 基础 var storage={ set(key,value){ localStorage.setItem(key ...
- vue 定义方法执行方法 获取数据 改变数据 执行方法传值 以及事件对象
<template> <div id="app"> <!-- <img v-bind:src='url' /> <img :src= ...
- vue 数据绑定 绑定属性 循环渲染数据
<template> <!-- vue的模板里面 所有的内容要被一个根节点包含起来 --> <div id="app"> <h2>{ ...
- Linux开机自动挂载windows网络共享
yum install samba-client yum install cifs.utils yum install samba-common 命令: mount -v -t cifs // ...
- 0001 - Spring 框架和 Tomcat 容器扩展接口揭秘
前言 在 Spring 框架中,每个应用程序上下文(ApplicationContext)管理着一个 BeanFactory,BeanFactory 主要负责 Bean 定义的保存.Bean 的创建. ...
- MySQL 开启和查看bin-log日志
1.5.7版本前修改my.cnf文件,添加log-bin=my-bin(my.cnf的位置根据自己安装的路径查看)# vi /usr/local/mysql/my.cnflog-bin=my-bin ...
- nonlocal和global
获取变量时遵循LEGB原则,修改变量时需要global/nonlocal进行修改 global # global的使用 函数外定义了全局变量: global关键字在函数内会修改全局变量 函数外没定义全 ...
- gradle本地、远程仓库配置
本地仓库配置 配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gradle下载的依赖包. 远程仓库配置 一般Gradle.maven从中央仓库mavenCentral() ...
- tips:Java中的switch的选择因子
tips:Java中的switch的选择因子! /* switch(){ } */ switch的()中的判断条件能是什么类型呢? 事实上,在我们学习c++的了解中,switch的参数是一个能 ...
- Python网络爬虫之requests模块
今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 ...