[转帖] 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;
/