`
mikixiyou
  • 浏览: 1086637 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:349501
社区版块
存档分类
最新评论

oracle限制某IP的连接数

阅读更多

在数据库管理中,会出现限制某个IP访问数据库的连接数或某个用户访问数据库的连接数的需求。

对于用户访问数据库的连接数限制,我们可以从数据库的profile上着手,使用profile的特性实现该需求。

对于IP访问数据库的连接数限制,从数据库上可以使用logon on database触发器来实现。

 

每一次新会话登录,都将IP记录在vrsession的client_info中,然后count出所有符合条件的会话数目,如果超过了,就直接断开会话连接。

但这个会话连接数据库如果限制了,也只能对非dba角色的用户生效。dba用户只会在alert.log中写一个警告信息而已。

 

(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1705838 )

 

实现该功能的触发器代码如下:

 

create or replace trigger logon_audit
  after logon on database
declare
  /**********************************************************************************  
  NAME:       logon_audit   
  PURPOSE:    限制某个IP到数据库实例的连接数。如果超过限制会出错或报警
    
  NOTES:   1、使用sys提交到数据库  
           2、使用logon on database触发器实现  
    
  **********************************************************************************/
  /*按照规划,定义number,string,date三种类型变量名称*/

  i_sessions         number;
  i_sessions_limited number := 30;
  str_userip         varchar2(15) := '192.168.15.148';
  except_ip_limited exception;
begin

  dbms_application_info.set_client_info(sys_context('userenv',
                                                    'ip_address'));
  select count(*)
    into i_sessions
    from v$session
   where client_info = str_userip;

  if (i_sessions > i_sessions_limited) then
    raise except_ip_limited;
  end if;

exception
  when except_ip_limited then
    raise_application_error(-20003, 'ip:' || str_userip || ' 连接数受限!');
  
end logon_audit;
分享到:
评论

相关推荐

    Oracle 主要配置文件介绍

    Oracle 实例的多数内存和进程设置 以下是一些主要参 数的说明 1 实例的数据库名称 db_name = "cams" 2 实例名称 instance_name = cams 3 数据库控制文件的名称和位置 control_files = ...

    oracle 11g安装配置

    增大用户oracle的进程数、文件数限制 [root@dbserver ~]# vi /etc/sysctl.conf …… fs.aio-max-nr = 1048576 限制并发未完成的请求,应该设置避免I/O子系统故障 fs.file-max = 6815744 文件句柄设置代表linux系统中...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     1.2.2 设置IP地址  1.2.3 设置计算机全名  1.2.4 关闭Windows防火墙和某些杀毒软件  1.3 安装Oracle11g数据库(高级安装)  1.4 查看、验证安装结果  1.4.1程序组  1.4.2 文件体系结构  1.4.3 服务...

    Oracle事例

    <7> alter user语句的quota子句限制用户的磁盘空间 如:alter user jf quota 10M on system; 27、查看放在ORACLE的内存区里的表 SQL>select table_name,cache from user_tables where instr(cache,\'Y\')>0; ...

    citrix 中文管理操作手册

    检测应用于某一连接的策略 77 解析部分内容符合条件的搜索结果 77 解析部分内容符合搜索条件的搜索结果 77 对具有冲突规则的策略进行故障排除 78 确定最终生成的策略 78 未配置任何策略规则时 78 删除策略 78 禁用...

    三层ADO的Internet远程数据库访问开发套件

    Middle ADO System 三层ADO的Internet远程数据库访问开发套件 ... 特点: ...4、受到正版数据库软件用户连接数的限制,需要用少量许可提供更多客户端服务的应用。例如,10个许可提供给50个用户同时使用。

    娱乐先锋论坛 KQJBBS 4.7版

    (16)发贴可以贴数限制,只有发了相当的帖子数量的,才可以看贴。 (17)发贴可以金钱限制,只有付了相当的金钱才可以看贴。 (18)回帖人员可以在回帖时给搂主送分 (19)会员间可以赠送积分 ...

    娱乐先锋论坛KQJBBS 5.1版

    (62)发贴可以贴数限制,只有发了相当的帖子数量的,才可以看贴。 (63)发贴可以金钱限制,只有付了相当的金钱才可以看贴。 (64)级别高的人员可以给低级别人员增加/降低威望。 ...

    KQJBBS (娱乐先锋论坛) V3.1

    (16)发贴可以贴数限制,只有发了相当的帖子数量的,才可以看贴。 (17)发贴可以金钱限制,只有付了相当的金钱才可以看贴。 (18)回帖人员可以在回帖时给搂主送分 (19)会员间可以赠送积分 ...

    管理信息系统数据库安全体系设计(1).doc

    但必须限制远程访问端口的可信任区域。为了减少这类端口被利用和被攻击的可能 性,可更改此类端口为数据库服务器上尚未被使用的其他端口或者隐藏数据库通信端口, 同时利用防火墙安全策略来禁止非可信任区域对服务器该...

    mysql数据库my.cnf配置文件

    # MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例156 限制多行文本域输入的字符个数 187 实例157 设置文本框的只读属性 188 实例158 自动计算金额 189 实例159 为文本框设置默认值 190 实例160 设置文本框的样式 191 实例161 文本域的滚动条 192 3.3 下拉列表的...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例156 限制多行文本域输入的字符个数 187 实例157 设置文本框的只读属性 188 实例158 自动计算金额 189 实例159 为文本框设置默认值 190 实例160 设置文本框的样式 191 实例161 文本域的滚动条 192 3.3 下拉列表的...

    mysql基础只是总结

    max_user_connects 最大并发数 连接数 0没有限制 max_connects_per_hour 每个小时最大的并发数 0没有限制 【数据库的基本CLI】 1、show databases; 查看服务器中的所有数据库 2、select user(); 查看当前用户 ...

    2021数据仓库服务常见问题汇总-华为-51页.pdf

    2.20 添加云监控服务的告警规则,会话数阈值如何设置? 3 集群备份与恢复 3.1 为什么自动快照创建很慢,很长时间都没有创建好? 4 数据库连接 4.1 GaussDB(DWS) 是否支持第三方客户端以及JDBC 和ODBC 驱动程序? ...

    数据库操作语句大全(sql)

    8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括 select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between 数值1 and 数值2 9...

    C#.net_经典编程例子400个

    39 1.11 设置窗体位置 40 实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 1.12 设置窗体大小 42 实例040 限制窗体大小 42 实例041 获取桌面大小 42 实例042 ...

    C#程序开发范例宝典(第2版).part13

    实例259 限制鼠标活动区域 354 实例260 获取鼠标在任意点的颜色值 355 实例261 设置鼠标样式 357 7.9 程序控制 359 实例262 打开控制面板中的程序 359 实例263 添加程序托盘 360 实例264 不出现在任务栏上的...

Global site tag (gtag.js) - Google Analytics