网上看到好多通过logontrigger来限制登陆的程序,也曾经下载下来进行测试,一直没成功,也曾经把用户的admin权限取消,还是不成功,现在终于知道了除了admin权限,还有一个权限也是需要收回的那就是 imp_full_database 一旦用户拥有这个权限,logon trigger 里面的限制就不起作用了。
附一个网上转来的logontrigger
CREATE OR REPLACE TRIGGER QIUYB$LOGON AFTER
LOGON ON DATABASE
DECLARE
V_PROGRAM VARCHAR2(48);
V_MESSAGE VARCHAR2(1000);
V_BAD_LOGON EXCEPTION;
BEGIN
SELECT PROGRAM INTO V_PROGRAM
FROM V$SESSION
WHERE AUDSID = SYS_CONTEXT('USERENV', 'SESSIONID')
AND rownum<2;
IF USER IN ('TEST_DB')
AND sys_context('USERENV','ip_address') LIKE '10.33.10.%'
THEN
raise V_BAD_LOGON;
END IF;
EXCEPTION
WHEN v_bad_logon THEN
v_message := 'Uh Uh Uh! - This user can not logon with this software!!';
RAISE_APPLICATION_ERROR(-20002, v_message);
WHEN OTHERS THEN
v_message := 'FATAL ERROR - QIUYB$LOGON TRIGGER- Please Contact Your DBA!!' ||
CHR(10) || SQLERRM;
RAISE_APPLICATION_ERROR(-20003, v_message);
END;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/60584/viewspace-613837/ ,如需转载,请注明出处,否则将追究法律责任。