触发器限制指定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黑科技有哪些
青海科技产业互联网发展
长沙茂晟互联网科技有限公司
济南小医互联网科技有限公司招聘
上海万顺科技互联网有限公司招聘