[Oracle]如何使用触发器实现IP限制用户登录
2023-06-13 09:15:03 时间
下面是一个触发器的例子:
复制代码代码如下:
createorreplacetriggerlogon_ip_control
afterlogonondatabase
declare
ipSTRING(30);
userSTRING(30);
begin
SELECTSYS_CONTEXT("USERENV","SESSION_USER")intouserfromdual;
SELECTSYS_CONTEXT("USERENV","IP_ADDRESS")intoipfromdual;
ifuser="EPAY_USER"
THEN
IFipnotin("192.168.219.20","192.168.219.22")
THENraise_application_error(-20001,"User"||user||"isnotallowedtoconnectfrom"||ip);
ENDIF;
ENDIF;
end;
/
该触发器对用户EPAY_USER进行了IP限制(只允许"192.168.219.20","192.168.219.22",如果需要设置IP段,用%或?代替即可,如"192.168.219.%‘)。
1)从非允许IP地址登陆(192.168.219.21),连接失败
[oracle@lxdb2~]$sqlplusepay_user@pri
SQL*Plus:Release11.2.0.3.0ProductiononWedJul319:23:482013
Copyright(c)1982,2011,Oracle. Allrightsreserved.
Enterpassword:
ERROR:
ORA-00604:erroroccurredatrecursiveSQLlevel1
ORA-20001:UserEPAY_USERisnotallowedtoconnectfrom192.168.219.21
ORA-06512:atline10
2)从允许IP地址登陆(192.168.219.22),连接成功
[oracle@lxdb1~]$sqlplusepay_user
SQL*Plus:Release11.2.0.3.0ProductiononWedJul311:24:252013
Copyright(c)1982,2011,Oracle. Allrightsreserved.
Enterpassword:
Connectedto:
OracleDatabase11gEnterpriseEditionRelease11.2.0.3.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions
3)从本地登陆(192.168.219.23)不受IP限制影响,连接成功
[oracle@lxdb1~]$sqlplusepay_user
SQL*Plus:Release11.2.0.3.0ProductiononWedJul311:24:252013
Copyright(c)1982,2011,Oracle. Allrightsreserved.
Enterpassword:
Connectedto:
OracleDatabase11gEnterpriseEditionRelease11.2.0.3.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions
相关文章
- ip查看局域网IP:在Linux系统下的实现(linux查看局域网)
- 为Oracle数据库增加新的数据文件(oracle增加数据文件)
- 标题:轻松实现Oracle自动安装(自动安装oracle)
- MySQL设置允许特定IP访问(mysql允许ip访问)
- Oracle 取年月的实现方法(oracle取年月)
- Oracle 文件导出:完整指南(oracle导出文件)
- 掌握ORACLE数据类型,实现数据灵活管理(oracle数据类型)
- 的作用使用impdp工具实现Oracle数据库的灵活迁移(oracle中impdp)
- 精通Oracle触发器:深入全面认识不同类型的触发器(oracle触发器类型)
- 利用Oracle触发器实现数据安全性(oracle触发器类型)
- 连接 Oracle 数据库:DBA 的指南(dba连接oracle)
- 优化Oracle连接查询,提升数据库性能(oracle连接查询优化)
- Oracle中使用Floor函数实现精确计算(oracle中floor)
- ORACLE实现数据快速导入,助您高效运营!(oracle文本导入)
- 安装Oracle客户端32位,获取更多功能!(oracle客户端32位)
- Oracle与Odoo实现企业高效运作的关键(odoo oracle)
- 64位Oracle 9i实现数据管理新突破(64位oracle 9i)
- Oracle从属进程实现服务稳定运行(oracle从属进程)
- Oracle数据库中实现自动递增功能(oracle中自增的实现)
- Oracle智能化人工审批提高效率降低费用(oracle人工审批)
- Oracle实现高效人力云计算(oracle 人力云)
- 利用Oracle主键实现可靠数据存储(oracle主键的使用)
- Oracle数据库维护实现全路径的最佳实践(oracle 全路径)
- Oracle中实现属性数据的拆分(oracle中拆分属性)
- Oracle中如何存储特殊字符(oracle中存特殊字符)
- 断顺利脱离Oracle,利用exit断开连接(oracle 中exit)
- Oracle实现开源软件联合学习网络(oracle lwn)
- 探讨Oracle和GP的引擎区别(oracle gp 区别)
- 利用Oracle ASM监听实现高效数据管理(oracle asm监听)