千家信息网

触发器限制指定IP访问oracle数据库

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,触发器限制指定IP访问oracle数据库---------------------来自德哥的BLOG,觉着很有用,记录一下-------------------最近有个项目需要限制某些数据库用户的访问
千家信息网最后更新 2026年11月02日触发器限制指定IP访问oracle数据库
  • 触发器限制指定IP访问oracle数据库
  • ---------------------来自德哥的BLOG,觉着很有用,记录一下-------------------

  • 最近有个项目需要限制某些数据库用户的访问来源IP,在PG中比较好实现,但是ORACLE没有比较简便的操作。
  • 如果不管用户的话,仅仅限制来源IP对监听的访问是比较容易实现的,通过配置数据库服务器的sqlnet.ora文件或者修改数据库服务器的IPTABLES等手段实现。
  • sqlnet.ora范例:
  • tcp.validnode_checking=yes
  • tcp.invited_nodes=(172.16.33.11,172.16.34.89)

  • iptables范例:
  • [root@kefu ~]# cat /etc/sysconfig/iptables
  • # Firewall configuration written by system-config-securitylevel
  • # Manual customization of this file is not recommended.
  • *filter
  • :INPUT ACCEPT [0:0]
  • :FORWARD ACCEPT [0:0]
  • :OUTPUT ACCEPT [0:0]
  • :RH-Firewall-1-INPUT - [0:0]
  • -A INPUT -j RH-Firewall-1-INPUT
  • -A FORWARD -j RH-Firewall-1-INPUT
  • # 允许访问1521的服务器
  • -A RH-Firewall-1-INPUT -s 172.16.3.68/32 -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
  • -A RH-Firewall-1-INPUT -i lo -j ACCEPT
  • -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
  • -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
  • -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
  • -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
  • -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
  • -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
  • -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  • -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
  • COMMIT

  • 下面来看看如何限制特定用户和特定IP:

  • 1. 创建ACL表 (本例将ACL表建立在dsm用户下,随便建哪里都可以)
  • create table dsm.tbl_iplimit (logonuser varchar2(32),ip_address varchar2(15),remark varchar2(64),create_time date default sysdate);
  • insert into dsm.tbl_iplimit values ('DSM','172.16.18.81','digoal''s host.',sysdate);
  • insert into dsm.tbl_iplimit values ('DSM','local','本地',sysdate);
  • commit;
  • 这里限制了DSM用户只能从172.16.18.81和ORACLE所在服务器登录.其他用户不受限制.

  • 2. 创建触发器
  • conn / as sysdba
  • create or replace trigger "logon_audit" after
  • logon on database
  • declare
  • record_num number;
  • userip varchar2(15);
  • isforbidden boolean:=true;
  • begin
  • userip:=nvl(sys_context ('userenv','ip_address'),'local');
  • select count(*) into record_num from dsm.tbl_iplimit where logonuser=user;
  • if (record_num>0) then
  • select count(*) into record_num from dsm.tbl_iplimit where logonuser=user and ip_address=userip;
  • if (record_num=0) then
  • raise_application_error(-20003,'ip :'||userip||' is forbided');
  • end if;
  • end if;
  • exception
  • when value_error then
  • sys.dbms_output.put_line('exception handed');
  • when others then
  • raise;
  • end logon_audit;
  • /

  • 限制 用户 数据 数据库 服务器 服务 触发器 来源 范例 简便 所在 手段 文件 有用 项目 登录 监听 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 广东万易互联网科技有限公司惠州分公司 上海睿民互联网科技有限公司 互联网科技与金融科技 北京互联网科技有限公司 互联网科技公司介绍 多迪互联网科技有限公司 中国最先进互联网科技公司 青岛科技大学互联网大赛研究生 银川新华互联网科技学校联系电话 中国互联网公司排名锤子科技 国大互联网教育科技有限公司薪资 2021互联网科技公司排名 智帮互联网科技公司最近动向 深圳无忧互联网科技 互联网与数字科技关系 艺电能源互联网科技有限公司招聘 银川新华互联网科技学校招聘 山东亿川互联网科技有限责任公司 如何强化互联网金融科技 互联网的科技创新 互联网与新科技 嘟嘟瓜互联网科技 互联网前沿科技 广州慧亚互联网科技怎么样 互联网5g黑科技有哪些 青海科技产业互联网发展 长沙茂晟互联网科技有限公司 济南小医互联网科技有限公司招聘 上海万顺科技互联网有限公司招聘
    0