Oracle使用触发器实现IP限制用户登录

已邀请:

1针对数据库进行限制,但是有DBA权限用户不起作用

CREATE OR REPLACE TRIGGER logon_ip_control

  AFTER LOGON ON database

DECLARE

  username varchar2(64);

  ipinfo   varchar2(64);

BEGIN

  SELECT SYS_CONTEXT('USERENV', 'SESSION_USER'),

         SYS_CONTEXT('USERENV', 'IP_ADDRESS')

    INTO username, ipinfo

    FROM dual;

  if username = 'IP_TEST' and ipinfo in ('10.6.248.245', '10.10.3.201') then

    raise_application_error(-20009, 'your connection dose not permit!!!');

  end if;

END;

2针对SCHEMA进行限制

CREATE OR REPLACE TRIGGER logon_ip_control

  AFTER LOGON ON ncc_demo_pff0519.schema

DECLARE

  username varchar2(64);

  ipinfo   varchar2(64);

BEGIN

  SELECT SYS_CONTEXT('USERENV', 'SESSION_USER'),

         SYS_CONTEXT('USERENV', 'IP_ADDRESS')

    INTO username, ipinfo

    FROM dual;

  if username = 'NCC_DEMO_PFF0519' and

     ipinfo not in ('172.20.53.161', '20.10.130.205') then

    raise_application_error(-20009, 'your connection dose not permit!!!');

  end if;

END;


要回复问题请先登录注册