阻止特定的ip登陆数据库的2种方法 (轉)

阻止特定的ip登陆数据库的2种方法

===========================================================

方法1:使用系统触发器

方法2:修改监听器参数文件

(window nt平台,oracle 8.1.7下验证通过)
方法1:使用系统触发器
   create or replace trigger sys_trigger_test
     after logon on database  
   begin                                                        
     if sys_context('userenv','ip_address')='200.200.200.35' then
       raise_application_error(-20001,'logon forbidden');                
     end if;                                                                                                           
   end sys_trigger_test;

  用户登陆时的出错提示:

 ERROR:
 ORA-00604: 递归 SQL 层 1 出现错误
 ORA-20001: logon forbidden
 ORA-06512: 在line 3

方法2:修改监听器参数文件
   在$ORACLE_HOME/network/admin/目录下的protocol.ora文件(如果没有该文件则添加)中加入两行:   
    tcp.validnode_checking=yes
    tcp.excluded_nodes=(200.200.200.33)  
   其中tcp.excluded_nodes指的是要阻止的ip地址或机器名
   然后重启监听器即可

注1:oracle 815及以上版本可以使用方法1,在init.ora文件中设置_system_trig_enabled=false,则系统触发器失效
注2:方法1使用灵活,可以阻止登陆的形式很多,比如说特定时间内、用户使用特定程序禁止登陆等 情况,但系统开销较大,同时对某些用户起不到阻止登陆的作用;方法2系统开销小,但功能单一 
注3:对拥有系统权限ADMINISTER DATABASE TRIGGER或sysdbasysoper的用户,方法1无法阻止用户登陆,但触发器仍然会执行,系统缺省拥有ADMINISTER DATABASE TRIGGER权限的role有IMP_FULL_DATABASE、DBA,可以通过视图role_sys_priv,user_sys_priv等等来查询某个用户所拥有的系统权限

时间: 2024-08-31 01:25:15

阻止特定的ip登陆数据库的2种方法 (轉)的相关文章

MySQL删除数据库的两种方法_Mysql

本文为大家分享了两种MySQL删除数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 删除数据库使用普通用户登陆mysql服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库. 所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库. 在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失. 以下实例删除数据库TUTORIALS(该数据库在前一章节已创建): [root@h

新建Oracle数据库的3种方法

以下是对新建Oracle数据库的三种方法进行了详细的分析介绍,需要的朋友可以过来参考下   1.通过运行Oracle Database Configuration  Assistant 创建.配置.或删除数据库(也可在命令行下输入dbca): 2.用命令行的方式建立数据库 3.通过运行自定义的批处理脚本(或create_ORACLE_SID.bat(create_ORACLE_SID.sql))来创建.配置.或删除数据库. 详述:1.通过运行Oracle Database Configurati

Odbc连SQL Server数据库的几种方法

odbc|server|数据|数据库 Odbc连SQL Server数据库的几种方法   这篇文章是针对在CSDN论坛 中的一些想知道这方面技术的网友而写的.因为最近我本人在论坛上看到很多网友提到这个问题,所以就写了这篇文章,以飨读者. SQL Server 是一种高效的关系数据库系统,它与Windows NT/2000及Windows 9x等操作系统紧密集成.也是今天市场上几种大型关系型数据库(SQL Server\Oracle ybase等)之一.对于今天复杂的B/S服务器系统来说,SQL

把数据插入到数据库的两种方法

插入|数据|数据库 把表单中的数据插入到数据库中有两种方法.1.直接使用sql语句的 优点:速度快,不耗资源 缺点:不能传递太长的字段内容,字段比较多时不易排错. 推荐有经验的编程者优先考虑. 具体操作: 假设表单中有以下字段:username,password,sex,age 对应的,在程序中有username,password,sex,age已取通过request.form或request.querystring取到字段的值. 数据库表user中有username,password,sex,

阻止Win7系统自动安装驱动程序的3种方法

阻止Windows7系统自动安装驱动程序的3种方法: 方法1:[开始]-[设备与打印机],或如下图到控制面板里找 右键计算机图标,选择[设备安装设置] 在弹出的窗口选否,选法和方法一相同 方法2:右键桌面上的[计算机]-[属性] 选择左边选项卡的[高级系统设置],切换到[硬件]选项卡,选择第二个[设备安装设置] 在弹出的窗口里选择[否] 选择第三个[从不安装来自Windows Update安装](也就是上图序号2),这样就可以完全阻止了,但是软媒小编建议选择第二项(也就是上图蓝色框1),这样可以

Yii操作数据库的3种方法

 这篇文章主要介绍了Yii操作数据库的3种方法,需要的朋友可以参考下 一.执行原生太SQL的PDO方式.  代码如下:$sql = "";//原生态sql语句  xx::model()->dbConnection->createCommand($sql)->execute();  二.Active Record方式  (1)New 方式  代码如下:$post=new Post;  $post->title='sample post';  $post->c

c++连接mysql数据库的两种方法(ADO连接和mysql api连接)_C 语言

第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说.第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序. 不管用哪种方法,首先需要安装Mysql数据库,安装方法请看"mysql安装及一些注意点".最好安装一个Navicat for mysql,方便操作mysql数

Visual Basic.Net连各种数据库的几种方法

问题描述 VisualBasic.Net连各种数据库的几种方法MicrosoftVisualBasic.NET是MicrosoftVisualBasic的更新版本,它基于.NET的框架结构,能使用户非常容易地创建MicrosoftWindows操作系统和网络的应用程序.使用VisualBasic.NET,可以快速地实现可视化开发网络应用程序.网络服务.Windows应用程序和服务器端组件.另外,VisualBasic.NET为Windows应用程序提供了XCOPY部署,开发人员不再需要为DLL的

ASP.NET连接 Access数据库的几种方法_实用技巧

web.config 第一种方法: <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <appSettings> <add key="AccessConnString"