我觉得这个可以是一个小工具,所有我授权给了所有人(不过这也很危险)。
1:用SYS建立此PROC,
源码:
2:授权给所有
3:用SCOOT登录后执行
1:用SYS建立此PROC,
源码:
create or replace procedure kill_session(p_username varchar2,
p_sid number,
p_serial number) is
--Session exists flg
v_exist number := 0;
begin
--Query the session by identifier
select count(*)
into v_exist
from v$session s
where s.username = upper(p_username)
and s.sid = p_sid
and s.serial# = p_serial
and rownum =1;
--Ensure the session is already exists
if v_exist > 0 then
--Try to kill it
execute immediate 'alter system kill session ''' || p_sid || ',' ||
p_serial || '''';
else
--Echo error msg
dbms_output.put_line('No such session,username=' || p_username ||
',sid=' || p_sid || ',serial#=' || p_serial);
end if;
end kill_session;
2:授权给所有
GRANT EXECUTE ON KILL_SESSION TO PUBLIC;
3:用SCOOT登录后执行
begin
SYS.kill_session('SCOTT', 155, 28);
end;