概述
天萃荷净
触发器实现指定用户登录oracle,分享一篇关于Oracle数据库安全策略,通过Oracle触发器实现限定user用户登录Oracle数据库的方法
1、创建允许登录用户表
CREATE TABLE "CHF"."LOG$LOGIN_OS"
(
"OS_USER" VARCHAR2(60 BYTE)
)
2、创建触发器实现限制用户登录
create or replace
TRIGGER TR_LOGIN_RECORD_TEST
AFTER logon ON DATABASE
DECLARE
mtSession v$session%ROWTYPE;
CURSOR cSession(iiQuerySid IN NUMBER) IS
SELECT * FROM v$session where USERNAME is not null
and nvl(osuser,'x') <> 'SYSTEM' and type <> 'BACKGROUND' and audsid = iiQuerySid;
USER_NUM NUMBER(5);
V_SQL VARCHAR2(100);
BEGIN
OPEN cSession(userenv('SESSIONID'));
FETCH cSession INTO mtSession;
IF cSession%FOUND THEN
select count(*) into USER_NUM FROM CHF.LOG$LOGIN_OS WHERE OS_USER=mtSession.Osuser;
IF USER_NUM!=0 THEN
V_SQL:=' alter system kill session '||''''||mtSession.Sid||','||mtSession.Serial#||'''';
EXECUTE IMMEDIATE V_SQL;
END IF;
END IF;
CLOSE cSession;
EXCEPTION
WHEN OTHERS THEN
-- dbms_output.put_line('登记登录信息错误:'||SQLERRM);
RAISE;
END;
注:使用sysdba帐号创建触发器,因为在oracle中user不能kill掉自己的session,如果是用sysdba那么就可以kill掉其他的任何非自身的session
--------------------------------------ORACLE-DBA----------------------------------------
最权威、专业的Oracle案例资源汇总之【学习笔记】Oracle触发器 实现指定用户登录oracle案例
最后
以上就是多情火龙果为你收集整理的oracle 触发器登录,【学习笔记】Oracle触发器 实现指定用户登录oracle案例的全部内容,希望文章能够帮你解决oracle 触发器登录,【学习笔记】Oracle触发器 实现指定用户登录oracle案例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复