当前位置: 首页 > news >正文

Oracle解锁表、包、用户、杀会话、停job

Oracle解锁表、包、用户、杀会话、停job

  • 一、创建包tzq_server_pkg
  • 二、授权给需要使用的用户log
  • 三、解锁表:执行存过unlock_table(schema_name, table_name)
  • 四、解锁包:执行存过unlock_package(schema_name, pkg_name)
  • 五、解锁用户:执行存过unlock_user(username)
  • 六、停止job任务:执行存过stop_job(job_id)
  • 七、杀session会话:执行存过kill_session(se_sid, se_serail#)
    • 7.1、查询需要kill的session的SID及serial#
    • 7.2、执行存过kill_session(se_sid, se_serail#)
  • 八、给新建的用户授权:执行存过 grant_pris(username)


一、创建包tzq_server_pkg

sys用户以sysdba身份登录Oracle数据库,创建包 tzq_server_pkg ,上代码:

CREATE OR REPLACE PACKAGE sys.tzq_server_pkg ISPROCEDURE unlock_table(table_owner IN VARCHAR2, table_name IN VARCHAR2);PROCEDURE unlock_package(package_owner IN VARCHAR2,package_name  IN VARCHAR2);PROCEDURE unlock_user(username IN VARCHAR2);PROCEDURE stop_job(job_id IN NUMBER);PROCEDURE kill_session(se_sid IN NUMBER, se_serail# IN NUMBER);PROCEDURE grant_pris(username IN VARCHAR2);
END tzq_server_pkg;
/CREATE OR REPLACE PACKAGE body SYS.tzq_server_pkg ISPROCEDURE unlock_table(table_owner IN VARCHAR2, table_name IN VARCHAR2) ISCURSOR c1 ISSELECT DISTINCT '''' || s.sid || ',' || s.serial# || ',@' || s.inst_id || '''' AS si_idFROM gv$locked_object l,dba_objects      o,gv$session       sWHERE l.object_id = o.object_idAND l.session_id = s.sidAND l.inst_id = s.inst_idAND o.owner = upper(table_owner)AND o.object_name = upper(table_name);c1_rec c1%ROWTYPE;v_sql  VARCHAR2(2000);BEGINFOR c1_rec IN c1 LOOPv_sql := 'alter system kill session ' || c1_rec.si_id || ' immediate';dbms_output.put_line(v_sql);BEGINEXECUTE IMMEDIATE v_sql;EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);END;END LOOP;END unlock_table;PROCEDURE unlock_package(package_owner IN VARCHAR2,package_name  IN VARCHAR2) ISCURSOR c1 ISSELECT DISTINCT '''' || a.sid || ',' || a.serial# || ',@' || a.inst_id || '''' AS si_idFROM gv$session a,gv$access  bWHERE b.object = upper(package_name)AND b.owner = upper(package_owner)AND a.sid = b.sidAND a.inst_id = b.inst_id;c1_rec c1%ROWTYPE;v_sql  VARCHAR2(2000);BEGINFOR c1_rec IN c1 LOOPv_sql := 'alter system kill session ' || c1_rec.si_id || ' immediate';dbms_output.put_line(v_sql);BEGINEXECUTE IMMEDIATE v_sql;EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);NULL;END;END LOOP;END unlock_package;PROCEDURE unlock_user(username IN VARCHAR2) ISus_name VARCHAR2(200) := username;v_sql   VARCHAR2(2000);BEGINv_sql := 'alter user ' || us_name || ' account unlock';BEGINEXECUTE IMMEDIATE v_sql;dbms_output.put_line(us_name || '''s account is unlock');EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);END;END unlock_user;PROCEDURE stop_job(job_id IN NUMBER) ISCURSOR c1 ISSELECT DISTINCT '''' || a.sid || ',' || a.serial# || ',@' || a.inst_id || '''' AS si_idFROM gv$session a,(SELECT v.sid,v.id2     job,v.inst_id inst_idFROM sys.job$ j,gv$lock  vWHERE v.type = 'JQ'AND j.job(+) = v.id2) b,gv$instance cWHERE a.inst_id = b.inst_idAND a.sid = b.sidAND a.inst_id = c.inst_idAND c.inst_id = b.inst_idAND b.job = job_id;c1_rec c1%ROWTYPE;v_sql  VARCHAR2(2000);BEGINFOR c1_rec IN c1 LOOPv_sql := 'alter system kill session ' || c1_rec.si_id || ' immediate';dbms_output.put_line(v_sql);BEGINEXECUTE IMMEDIATE v_sql;EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);NULL;END;END LOOP;END stop_job;PROCEDURE kill_session(se_sid IN NUMBER, se_serail# IN NUMBER) ISp_sid           NUMBER := se_sid;p_serail        NUMBER := se_serail#;is_back_process NUMBER := 0;CURSOR c1 ISSELECT DISTINCT '''' || a.sid || ',' || a.serial# || ',@' || a.inst_id || '''' AS si_idFROM gv$session aWHERE a.sid = p_sidAND a.serial# = p_serail;c1_rec c1%ROWTYPE;v_sql  VARCHAR2(2000);BEGINIF se_sid IS NULL OR se_serail# IS NULL THENdbms_output.put_line('sid is null or serail# is null');RETURN;END IF;BEGINSELECT 1INTO is_back_processFROM gv$sessionWHERE sid = se_sidAND serial# = se_serail#AND TYPE = 'BACKGROUND';EXCEPTIONWHEN OTHERS THENis_back_process := 0;END;IF is_back_process = 1 THENRETURN;END IF;FOR c1_rec IN c1 LOOPv_sql := 'alter system kill session ' || c1_rec.si_id || ' immediate';dbms_output.put_line(v_sql);BEGINEXECUTE IMMEDIATE v_sql;EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);NULL;END;END LOOP;END kill_session;PROCEDURE grant_pris(username IN VARCHAR2) ISus_name VARCHAR2(200) := username;v_sql   VARCHAR2(2000);v_sql2  VARCHAR2(2000);v_sql3  VARCHAR2(2000);v_sql4  VARCHAR2(2000);v_sql5  VARCHAR2(2000);v_sql6  VARCHAR2(2000);v_sql7  VARCHAR2(2000);BEGINv_sql  := 'grant create synonym,create table,create type,create sequence,create view ,create materialized view,create job,create database link,connect,resource,create procedure ,debug any procedure, debug connect session to ' ||us_name;v_sql2 := 'grant select on gv_$locked_object to ' || us_name;v_sql3 := 'grant select on dba_objects to ' || us_name;v_sql4 := 'grant select on gv_$session to ' || us_name;v_sql5 := 'grant select on gv_$process to ' || us_name;v_sql6 := 'grant select on gv_$sql to ' || us_name;v_sql7 := 'grant select on gv_$access  to ' || us_name;BEGINEXECUTE IMMEDIATE v_sql;EXECUTE IMMEDIATE v_sql2;EXECUTE IMMEDIATE v_sql3;EXECUTE IMMEDIATE v_sql4;EXECUTE IMMEDIATE v_sql5;EXECUTE IMMEDIATE v_sql6;EXECUTE IMMEDIATE v_sql7;dbms_output.put_line('grant success!');EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);END;END grant_pris;END tzq_server_pkg;
/

二、授权给需要使用的用户log

sys用户以sysdba身份登录Oracle数据库,给需要使用该包(sys.tzq_server_pkg)的用户授予 execute 的权限,执行下面命令授权:

grant execute on sys.tzq_server_pkg to log;

在这里插入图片描述

三、解锁表:执行存过unlock_table(schema_name, table_name)

以上面被授权的log用户,打开命令行窗口,执行下列SQL:

set serveroutput on
execute sys.tzq_server_pkg.unlock_table('LOG','tzq_log_t');

在这里插入图片描述

四、解锁包:执行存过unlock_package(schema_name, pkg_name)

以上面被授权的log用户,打开命令行窗口,执行下列SQL:

set serveroutput on
execute sys.tzq_server_pkg.unlock_package('LOG','tzq_log_pkg');

在这里插入图片描述

五、解锁用户:执行存过unlock_user(username)

以上面被授权的log用户,打开命令行窗口,执行下列SQL:

set serveroutput on
execute sys.tzq_server_pkg.unlock_user('LOG');

在这里插入图片描述

六、停止job任务:执行存过stop_job(job_id)

以上面被授权的log用户,打开命令行窗口,执行下列SQL:

set serveroutput on
execute sys.tzq_server_pkg.stop_job(6);

在这里插入图片描述

七、杀session会话:执行存过kill_session(se_sid, se_serail#)

7.1、查询需要kill的session的SID及serial#

执行下列SQL:

SELECT * FROM gv$session;

找到你需要kill的那个session会话,拿到SID及serial#:159, 3729
在这里插入图片描述

7.2、执行存过kill_session(se_sid, se_serail#)

执行存过kill_session(),kill掉上面的那个session会话。在命令行执行下面的SQL:

set serveroutput on
execute sys.tzq_server_pkg.kill_session(159, 3729);

在这里插入图片描述

八、给新建的用户授权:执行存过 grant_pris(username)

以上面被授权的log用户,打开命令行窗口,执行下列SQL:

set serveroutput on
execute sys.tzq_server_pkg.grant_pris('log');

在这里插入图片描述

相关文章:

Oracle解锁表、包、用户、杀会话、停job

Oracle解锁表、包、用户、杀会话、停job 一、创建包tzq_server_pkg二、授权给需要使用的用户log三、解锁表:执行存过unlock_table(schema_name, table_name)四、解锁包:执行存过unlock_package(schema_name, pkg_name)五、解锁用户:执行存过u…...

软考高级系统架构设计师系列论文九十九:论软件开发平台的选择和应用

软考高级系统架构设计师系列论文九十九:论软件开发平台的选择和应用 一、相关知识点二、摘要三、正文四、总结一、相关知识点 软考高级系统架构设计师系列之:面向构件的软件设计,构件平台与典型架构二、摘要 本文从一个行业MIS系统的开发实践,讨论了软件开发平台的选择和应…...

Redis Pub/Sub 指南

Redis 不仅仅是一个数据库,还可以作为支持发布和订阅(Pub/Sub)操作的消息代理。本文将使用 Navicat for Redis 简要概述 Redis 的 Pub/Sub 功能。 关于发布或订阅消息范式 Pub/Sub 是一种模式,发送者(广播者&#xf…...

Nest(2):Nest 应用目录结构和脚手架命令介绍

Nest 应用目录结构和脚手架命令介绍 在正式使用 NestJS 进行开发之前,先来了解下 Nest 应用的目录结构,和一些常用的脚本命令。 工程目录 下面是使用 nest/cli 创建的 Nest 项目的目录结构。 上篇文章中介绍了 src 目录以及目录下各个文件的作用。下面…...

【嵌入式】MKV31F512VLL12 微控制器 (MCU) 、Cyclone® IV E EP4CE10E22I8LN,FPGA-现场可编程门阵列芯片

1、MKV31F512VLL12 微控制器 (MCU) 是适用于BLDC、PMSM和ACIM电机控制应用的高性能解决方案。这些MCU采用运行频率为100MHz/120MHz、带数字信号处理 (DSP) 和浮点单元 (FPU) 的ARM Cortex-M4内核。KV3x MCU配备两个采样率高达1.2MS/s的16位ADC、多个控制定时器以及512KB闪存。 …...

矢量调制分析基础

前言 本文介绍VSA 的矢量调制分析和数字调制分析测量能力。某些扫频调谐频谱分析仪也能通过使用另外的数字无线专用软件来提供数字调制分析。然而,VSA 通常在调制格式和解调算法配置等方面提供更大的测量灵活性,并提供更多的数据结果和轨迹轨迹显示。本…...

ensp-Ipv6配置配置

ensp-Ipv6配置配置 📎ipv6.zip📎Ipv6 网络.docx...

java八股文面试[java基础]—— hashCode 与 equals 区别 == 与 equals的区别

两个对象的hashCode()相同时,equals()相等吗?_两个对象的hashcode一样,equal一样么_不想当个程序员的博客-CSDN博客 equals():比较的是非基本类型的数据的引用地址(即内存地址)是否相同,但是对于重写equal…...

Dubbo之PojoUtils源码分析

功能概述 PojoUtils是一个工具类,能够进行深度遍历,将简单类型与复杂类型的对象进行转换,在泛化调用时用到(在泛化调用中,主要将Pojo对象与Map对象进行相互转换) 功能分析 核心类PojoUtils分析 主要成员…...

【C++】—— C++11新特性之 “右值引用和移动语义”

前言: 本期,我们将要的介绍有关 C右值引用 的相关知识。对于本期知识内容,大家是必须要能够掌握的,在面试中是属于重点考察对象。 目录 (一)左值引用和右值引用 1、什么是左值?什么是左值引用…...

谈一谈redis脑裂

什么是redis脑裂 (1)一主多从架构中,主节点与客户端通信正常,主节点与哨兵、从节点连接异常,客户端仍正常写入数据 (2)哨兵判定主节点下线,重新选主 (3)原主…...

基于原生Servlet使用模板引擎Thymeleaf访问界面

我们常在Spring Boot项目中使用Thymeleaf模板引擎,今天突发奇想,尝试原生Servlet访问! 说做就做 搭建完整的WEB项目 其中的大部分依赖都是后续报错 追加进来的 导入依赖 thymeleaf-3.0.11.RELEASE.jar 第一次访问 访问地址: http://localhost:8080…...

【C语言】15-函数-1

1. 初步认识函数 通过前几章的学习,已经可以编写一些简单的 C 语言程序了,但是如果程序的功能比较多,规模比较大,把所有的程序代码都写在一个主函数(main函数)中,就会使主函数变得庞杂、头绪不清,使阅读和维护程序变得困难。此外,有时程序中要多次实现某一功能就需要…...

08-信息收集-架构、搭建、WAF等

信息收集-架构、搭建、WAF等 信息收集-架构、搭建、WAF等一、前言说明二、CMS识别技术三、源码获取技术四、架构信息获取技术五、站点搭建分析1、搭建习惯-目录型站点2、搭建习惯-端口类站点3、搭建习惯-子域名站点4、搭建习惯-类似域名站点5、搭建习惯-旁注,c段站点…...

Qt --- 显示相关设置 窗口属性等

主界面,窗口 最小化 最大化 关闭按钮、显示状态自定义: setWindowFlags(Qt::CustomizeWindowHint); setWindowFlags(Qt::WindowCloseButtonHint); //只要关闭按钮 setWindowFlags(Qt::WindowFlags type) Qt::FrameWindowHint:没有边框的窗口 Qt::Window…...

使用小程序实现左侧菜单,右侧列表双向联动效果

目录 引言理解双向联动效果的重要性scrollview属性介绍实现左侧菜单数据准备渲染菜单列表监听菜单点击事件实现右侧列表数据结构设计初始数据渲染监听列表滚动事件左侧菜单与右侧列表联动获取当前滚动位置计算对应菜单项联动效果优化用户体验考虑平滑滚动效果菜单高亮状态...

selenium中处理验证码问题

验证码 基本作用:可以实现当前访问页面的数据安全性、还可以减少用户的并发数; 类型:1、纯数字、纯字母;2、汉字组合;3、数学运算题;4、滑动;5、图片(选不同的、选相同、成语顺序&…...

EMR电子病历系统 SaaS电子病历编辑器源码 电子病历模板编辑器

EMR(Electronic Medical Record)指的是电子病历。它是一种基于电子文档的个人医疗记录,可以包括病人的病史、诊断、治疗方案、药物处方、检查报告和护理计划等信息。EMR采用计算机化的方式来存储、管理和共享这些信息,以便医生和医…...

一些自定义hooks

文章目录 1、点击框外隐藏弹窗hook 1、点击框外隐藏弹窗hook **描述:**有一个需要自己封装弹窗的组件,实现点击弹窗框外时隐藏弹窗 代码: import { useEffect } from “react”; // 点击框外hooks import { useEffect } from "react&q…...

基于Citespace、vosviewer、R语言的文献计量学可视化分析技术及全流程文献可视化SCI论文高效写作方法

文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体,注重量化的综合性知识体系。特别是,信息可视化技术手段和方法的运用,可直观的展示主题的研究发展历程、研究现状、研究…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...