触发器限制指定IP访问oracle数据库
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,触发器限制指定IP访问oracle数据库---------------------来自德哥的BLOG,觉着很有用,记录一下-------------------最近有个项目需要限制某些数据库用户的访问
千家信息网最后更新 2025年02月01日触发器限制指定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安全错误
数据库的锁怎样保障安全
b s软件开发技术
安徽卫星时钟服务器云空间
以TCGA数据库
华为云服务器安全组无效
怀旧版魔兽服务器崩溃
安联 网络安全险
软件开发打包是什么意思
手机媒体服务器
csgo选择服务器后还能改么
软件开发生命周期案例分析
网络安全著名公司
软件开发部门中存在的问题
tbc怀旧服比格沃斯服务器
服务器怎么禁止web访问
软件开发需求文档业务流程图
服务器snmp配置实例
美国服务器品牌
西安四叶草网络安全有限公司
如何自建网站并且连接服务器
小白数据库性能
联想sr658服务器初始密码
想从事翻译软件开发
汕头软件开发一个月工资多少
服务器黑屏但是可以开机
软件开发生命周期案例分析
服务器管理口是什么意思
怎样将文件传入ftp服务器
网络安全威胁分析方法
网络安全软件分销
小程序用什么数据库