0
点赞
收藏
分享

微信扫一扫

Oracle授予普通用户kill session权限


开发A在测试环境操作时有时会遇到阻塞问题,需要找DBA帮忙查看阻塞会话及kill session,后来觉得太麻烦想要个kill会话的权限,查了下Oracle授予普通用户kill session权限的方法。

1. 授予alter system权限

官方文档查到,kill session需要ALTER SYSTEM权限,但是这个权限非常大,不能直接给

GRANT ALTER SYSTEM TO <username>;

2. 创建存储过程

后来查到了可以自己创建存储过程实现,还能加各种限制条件,例如写入日志,记录是谁在什么时候发起的、kill了谁,视需要而定。简单的实现方法如下:

-- sys执行
create or replace procedure kill_session
( v_sid number, v_serial number )
as
v_varchar2 varchar2(100);
begin
execute immediate 'ALTER SYSTEM KILL SESSION '''
|| v_sid || ',' || v_serial || '''';
end;
/

-- 授权:
grant execute on kill_session to username;

-- 普通用户使用:
exec sys.kill_session(161,14502);

举报

相关推荐

0 条评论