Carlos, Muito obrigado, era exatamente isso que eu precisava, já coloquei em produção
Grato, Ednilson De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Enviada em: sexta-feira, 18 de novembro de 2016 15:26 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: Matar propria sessão Olá a todos, boa tarde ! Fonte: http://www.online-database.eu/index.php/scripts/232-grant-a-standard-db-user-the-possibility-to-kill-database-sessions Alteraria and username != 'SYS' ; Para and username=(SELECT USER FROM DUAL); SQL> create or replace procedure I_AM_DBA.KILL_USER_SESSION ( nsid number, nserial number ) 2 authid definer 3 /* Guy Lambregts 2014-09-29 */ 4 /* This procedure can be used to grant a database user the possibility to kill user sessions */ 5 /* without the need to grant the alter system privilege to the user */ 6 /* STEP 1 as sysdba "create user i_am_dba identified by secret account lock" */ 7 /* STEP 2 as sysdba "grant alter system to i_am_dba" + "grant select on sys.v_$session to i_am_dba" */ 8 /* STEP 3 as sysdba compile this procedure under schema i_am_dba */ 9 /* STEP 4 as sysdba "grant execute on i_am_dba.kill_user_session to a_user" */ 10/* STEP 5 as sysdba "grant select on v_$session to a_user" */ 11 /* usage : connected as a_user : SQL > exec i_am_dba.kill_user_session(34,17); */ 12 as 13 statement varchar2(100); 14 begin 15 select 'alter system kill session '''||sid||','||serial#||''' immediate' into statement from sys.v_$session 16 where sid = nsid and serial# = nserial and username is not null and username = (SELECT USER FROM DUAL) ; 17 execute immediate(statement); 18 exception 19 when no_data_found then 20 raise_application_error(-20001, 'Sessão Inexistente ou não pertence a você!!!'); 21 when others then 22 raise_application_error(-20002,'Erro - '||SQLCODE||' -ERROR- '||SQLERRM); 23 end; 24 / Um abraço, Carlos [As partes desta mensagem que não continham texto foram removidas]