当前位置:首页 > 数据库 > 正文

[转帖] Oracle数据库 通过触发器 限制登录ip

转帖 From https://yq.aliyun.com/ziliao/123360

 

create or replace trigger logon_ip_control
after logon on database
declare
  ip STRING(30);
  user STRING(30);
begin
SELECT SYS_CONTEXT(‘USERENV‘,‘SESSION_USER‘) into user from dual;
SELECT SYS_CONTEXT(‘USERENV‘,‘IP_ADDRESS‘) into ip from dual;
if user=‘system‘ 
  THEN
      IF ip not in (‘127.0.0.1‘,‘10.24.200.200‘)  
      THEN raise_application_error(-20001,‘User ‘||user||‘ is not allowed to connect from ‘||ip);
      END IF;
END IF;
end;
/