首页 数据库,菜狗日记

在日常生活中我们知道达梦的普通用户是无法执行kill session权限的
正常的kill session ,在DM中需要使用sysdba用执行sp_close_session(session_id)
普通用户如何进行这种操作呢?
大致有以下思路:
直接授予sp_close_session----NO ,此路不通,这个对象DM是没有外放出来的,会提示“无效的数据库对象”;
给sp_close_session包装下----可行,操作如下;

create PROCEDURE kill_session(session_id bigint) as BEGIN
 sp_close_session(session_id);
end;

--给普通用户授权

grant exec on kill_session to u1;

--普通用户登录后进行kill session操作,117798928为session_id

sysdba.kill_session(117798928);

测试结果如下:
--创建存储过程
微信图片_20230214152414.png

--给普通用户授权
微信图片_20230214152604.png

--登录普通用户DB01登录后进行kill session操作
微信图片_20230214152804.png

微信图片_20230214152959.png


文章评论