专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

分享一个实用的触发器--限制Oracle用户登录IP地址

ins518 2024-10-13 06:01:20 技术文章 12 ℃ 0 评论

概述

很多时候我们想实现限制某个IP段登录数据库,比较常用的是用触发器来实现,这里大致介绍下。


触发器实现

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='NWPP' 
 THEN
 IF ip not in ('192.168.219.20','192.168.219.22') 
 THEN raise_application_error(-20001,'User '||user||' is not allowed to connect from '||ip);
 END IF;
END IF;
end;
/

说明:该触发器对用户EPAY_USER进行了IP限制(只允许'192.168.219.20','192.168.219.22',如果需要设置IP段,用%或?代替即可,如'192.168.219.%‘)。


测试验证

1)从非允许IP地址登陆 (192.168.219.21),连接失败

2)从允许IP地址登陆(192.168.219.22),连接成功

3)从本地登陆(192.168.219.23)不受IP限制影响,连接成功


这个触发器还是挺好用的,大家有空也可以自己测试一下。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表