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

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监听器的基本流程。实际操作中,可能会涉及更多复杂的配置,如SSL加密、负载均衡、多实例配置等。了解并熟练...

    linux +oracle 环境搭建

    2. **用户限制调整**:在 `/etc/security/limits.conf` 文件中,针对Oracle用户(这里是`oracle`)调整了`nproc`(最大进程数)和`nofile`(最大文件描述符数)的限制,这是为了满足Oracle数据库运行时对资源的需求...

    Oracle 11g RAC+DG安装配置

    6. **设置系统参数**:调整操作系统参数,如内存限制、最大文件句柄数等,以适应 Oracle 的运行需求。 **四、Oracle Grid Infrastructure 安装** Oracle Grid Infrastructure (GI) 是 RAC 的基础,包含 OCR、...

    arcsde修改连接数dos命令

    ### arcsde修改连接数及配置知识点 #### 一、arcsde简介 ArcSDE是ESRI公司开发的一款用于管理空间数据的企业级解决方案。...通过以上步骤可以有效地解决因连接数限制引起的问题,并提高系统的可用性和稳定性。

    Oracle10g_Linux安装步骤

    - **配置HOSTS**:在`/etc/hosts`文件中添加所有网络节点的主机名和IP映射,以便于网络通信和数据库连接。 4. **编辑.bash_profile文件** 编辑`oracle`用户的`~/.bash_profile`文件,添加必要的环境变量,如`...

    Oracle12cRAC数据库 出现ora-12520, ora-12516

    为了防止由于连接数达到上限而导致的ora-12520错误,可以通过调整`processes`和`sessions`参数来提高并发连接能力。这通常需要在每个实例的`spfile`文件中进行修改: - **增加processes参数**:根据实际需求适当...

    Oracle 11g RAC+DG 非常牛逼的部署手册

    - 设置用户级别的资源限制,如最大文件大小、打开文件的最大数量等,这对于Oracle数据库的稳定运行至关重要。 **1.9 配置用户环境变量** - 配置必要的环境变量,如`ORACLE_HOME`、`PATH`等,以确保Oracle软件能够在...

    Oracle Linux 6.5 服务器 安装 Oracle 11.2.0.4 数据库

    编辑`/etc/sysctl.conf`文件,设置与Oracle数据库性能密切相关的内核参数,如`file-max`(系统最大文件数)、`aio-max-nr`(异步I/O请求的最大数量)、`shm*`(共享内存相关参数)和`net.ipv4.ip_local_port_range`...

    oracle监听无法启动

    5. **系统资源限制**:如系统内存不足、文件句柄数限制等也可能导致监听器无法正常启动。 #### 二、解决步骤详解 针对以上问题原因,我们可以采取以下步骤逐一排查并解决问题: ### 1. 检查`listener.ora`配置...

    ORACLE数据库安装

    例如,增加`nproc`(最大进程数)和`nofile`(最大打开文件数),这将允许Oracle数据库运行时使用更多的系统资源。此外,还需要在`/etc/pam.d/login`文件中添加设置以应用这些限制。 4. **调整内核参数**: 修改`/etc/...

    oracle10gR2_X64_RAC_linux5_RAW_VMworkstation 8

    3. 配置/etc/sysctl.conf文件:调整内核参数,如TCP/IP连接数、内存限制等,以优化Oracle性能。 4. 创建用户及目录:创建专门的Oracle用户和组,为Oracle软件和数据创建适当的目录结构。 5. 配置/etc/security/...

    linux下安装部署oracle文档

    在`/etc/security/limits.conf`文件中,增加关于进程和打开文件数的限制,以适应Oracle的运行环境。 完成上述步骤后,您可以开始下载并运行Oracle的安装程序。在安装过程中,按照提示进行配置,包括数据库类型选择...

    Linux下安装Oracle11g服务器(详细图解

    在`/etc/security/limits.conf`文件中,增加对Oracle用户的软硬限制,如nproc(进程数)和nofile(文件描述符数)。这将确保Oracle能够处理大量并发连接和文件操作。添加如下内容: ``` oracle soft nproc 2047 ...

    Oracle 10g 在linux redhat 系统安装图解全过程

    编辑`/etc/security/limits.conf`文件,为Oracle用户设置资源限制,比如最大进程数和打开文件数: ``` oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 ...

    aix下的oracle10-配置安装Oracle所需的UNIX组、用户、目录、操作系统参数、网络参数

    1. **TCP/IP参数**:调整最大连接数等参数,通过编辑`/etc/inet/inetd.conf`和`/etc/inet/tcpip`文件。 2. **DNS解析配置**:确保/etc/hosts文件中包含所有节点的正确解析记录。 ### 创建文件系统和目录 1. **创建/...

    oracle 常用命令 TXT 最全的

    - 目前为止,Oracle SQL Plus本身不直接支持查询服务器的IP地址。但是可以通过查询操作系统级别的信息来间接获取。 - 如果需要查询服务器的IP地址,可以考虑在SQL Plus外部使用操作系统命令(如Linux下的`ifconfig`...

    linux虚拟机和oracle数据库安装详细步骤

    在/etc/profile文件中,为Oracle用户设置适当的限制,如最大进程数和打开文件数。这有助于防止因资源不足导致的错误。 在安装Oracle数据库之前,需要创建特定的用户和组。这里创建了"dba"和"oinstall"两个组,然后...

    Linux下oracle11g

    此外,还需要修改`/etc/security/limits.conf`以限制Oracle用户可以打开的文件描述符数量和进程数,以及`/etc/pam.d/login`以应用这些限制。 创建Oracle特定的用户和组,如`oinstall`、`dba`和`oper`,然后创建一个...

    Oracle Rac For Linux安装指南

    修改/etc/security/limits.conf,设置内存限制、文件打开数限制等,以满足Oracle的需求。 三、安装Grid Infrastructure 首先,要在所有节点上安装Grid Infrastructure,包括Clusterware和ASM。这一步涉及配置OCR和...

Global site tag (gtag.js) - Google Analytics