oracle 触发器登录,【学习笔记】Oracle触发器 实现指定用户登录oracle案例
天萃荷凈
觸發器實現指定用戶登錄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 rac 节点启动,Orac
- 下一篇: oracle resetlogs 误删,