[Oracle] 如何使用触发器实现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='EPAY_USER'
  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),连接失败
复制代码 代码如下:

[oracle@lxdb2 ~]$ sqlplus epay_user@pri
SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 3 19:23:48 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Enter password:
ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-20001: User EPAY_USER is not allowed to connect from 192.168.219.21
ORA-06512: at line 10

2)从允许IP地址登陆(192.168.219.22),连接成功
复制代码 代码如下:

[oracle@lxdb1 ~]$ sqlplus epay_user
SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 3 11:24:25 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

3)从本地登陆(192.168.219.23)不受IP限制影响,连接成功
复制代码 代码如下:

[oracle@lxdb1 ~]$ sqlplus epay_user
SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 3 11:24:25 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options



相关阅读:
Win10新补丁KB3074681 bug很快修复 可在设置中卸载程序
php实现天干地支计算器示例
C++中的extern声明变量详解
Android控件之TabHost用法实例分析
解读C++编程中派生类的构成和创建
jQuery实现手机号码输入提示功能实例
CentOS yum php mcrypt 扩展安装方法
使用js在页面中绘制表格核心代码
asp.net实现图片以二进制流输出的两种方法
WinXP因配额不足导致无法访问如何解决
MySQL索引之主键索引
jquery trigger实现联动的方法
非常实用的php验证码类
Dojo获取下拉框的文本和值实例代码
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 国际照会礼仪 有关情人节的句子 跟岗班主任工作总结 那些脚印,在月末淹没~ 老房子也美丽 村妇联 半年工作总结 建设局局长述职评议整改报告 玉米地 秋 宴 再美的梦也有苏醒的qq空间伤感句子 成功的标准不止一个 关于陕西推进城市生活垃圾分类处理的调研报告 大学生入党申请书(写于2月23日) 满满的思念 珍惜人生作文200字 《爱党卫士歌》歌词串词朗诵词报幕词 文字,我心中最美的情缘(散文诗) 新农村公路建设经验做法 港湾,是对母亲的思念 资源所“三严三实”专题教育学习研讨情况报告 人之所以会烦恼,就是没有学会遗忘。 勇气为我打开一扇门 人生美文:总有一些路,你得一个人去走 似水年华花未泯 53年前的8.29——最安然的时光作文900字 孩子最好的“玩具”是他们的小伙伴 红莓花儿开歌曲主持人串词;红莓花儿开歌词: 参考文献的英文格式 情墨一窗的念 狂人漫画 关于保护鸡蛋的作文 鹅公湾 我家的小狗300字 今天叔叔不喝酒作文1100字 人们最关注的两大问题 如若你在 工程监理年终工作总结报告 秋的静默 由《婚姻时差》想到的 高级教师职称评审述职报告 悲秋的风景 纯粹的幸福作文400字 掌握职场礼仪打造丽人形象 竞选杰出学生演讲稿:抓住机遇,相信自己 党支部三严三实民主生活会发言材料 2015年2月大学生入党转正申请书(1000字) “12.4”全国法制宣传日教育学习活动倡议书 美得让人心疼的爱情语录 民族团结作文400字 我的男友标准

Copyright © 2016 phpStudy |