Oracle授权普通用户 kill session权限
生活随笔
收集整理的這篇文章主要介紹了
Oracle授权普通用户 kill session权限
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
--Oracle中開發(fā)環(huán)境有時(shí)會有鎖產(chǎn)生,開發(fā)人員需要kill session權(quán)限
--但Oracle中對應(yīng)系統(tǒng)權(quán)限是alter system, 權(quán)限太大,不合適。
--故可以通過創(chuàng)建存儲過程給開發(fā)人員調(diào)用使用
--使用有dba權(quán)限用戶創(chuàng)建,或者使用sys用戶創(chuàng)建,通過加入條件判斷,限制用戶只能處理自己的進(jìn)程
CREATE OR REPLACE PROCEDURE p_kill_session ( v_sid number, v_serial number) ASv_sql VARCHAR2(500);v_user varchar2(20);v_logon varchar2(50); BEGINSELECT usernameINTO v_userFROM v$sessionWHERE SID = v_sid;v_logon := sys_context('userenv', 'SESSION_USER');if v_user = v_logon thenv_sql := 'ALTER SYSTEM KILL SESSION '''|| v_sid || ',' || v_serial || '''';EXECUTE IMMEDIATE v_sql;--dbms_output.put_line(v_sql);elseraise_application_error(-20000, 'This is not your session!');end if; END; /--如果不是sys用戶創(chuàng)建的,需要用sys用戶給DBA用戶授權(quán)
grant select on v_$session to <dbauser>; grant alter system to <dbauser>;--授予普通用戶執(zhí)行權(quán)限
grant execute on p_kill_session to <username>;?
總結(jié)
以上是生活随笔為你收集整理的Oracle授权普通用户 kill session权限的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。