注册
赋予普通用户CLOSE_SESSION权限
专栏/技术分享/ 文章详情 /

赋予普通用户CLOSE_SESSION权限

Dora 2026/09/23 175 0 0
摘要
CREATE OR REPLACE  PROCEDURE SYSDBA.USER_SP_CLOSE_SESSION(USER_SESS_ID BIGINT)
AS 
USERNAME VARCHAR;
BEGIN 
--进行用户判断,是否会话为当前用户创建,是则清理
SELECT USER_NAME INTO USERNAME FROM V$SESSIONS WHERE SESS_ID =USER_SESS_ID;
IF USERNAME=USER THEN 
SP_CLOSE_SESSION(USER_SESS_ID);
ELSE 
--若传入非当前用户会话,则提示会话与用户不符,避免普通用户权限过大
RAISE_APPLICATION_ERROR('-23456','会话 '||USER_SESS_ID||' 所属用户为'||USERNAME||',非'||USER||'用户,仅可清理当前用户会话');
END IF;
END;
--创建同义词,赋予执行权限
CREATE SYNONYM DMDBA.USER_SP_CLOSE_SESSION FOR "SYSDBA"."USER_SP_CLOSE_SESSION";
GRANT EXECUTE ON SYSDBA.USER_SP_CLOSE_SESSION TO DMDBA;

image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服