zoukankan      html  css  js  c++  java
  • 阻止特定的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等等来查询某个用户所拥有的系统权限

  • 相关阅读:
    js右击事件
    css中的特殊居中
    js实现轮播图
    css画三角形
    Elasticsearch-5.5.0安装head插件
    Elasticsearch报错:NodeDisconnectedException[[][IP:9300][cluster:monitor/nodes/liveness] disc
    mybatis foreach多次遍历问题
    Java使用File.separator解决Win和Linux的路径问题
    WebStorm 代码提示快捷键
    springmvc 前台传日期(字符串) 后台用date接收封装失败(请求400)
  • 原文地址:https://www.cnblogs.com/jimeper/p/753830.html
Copyright © 2011-2022 走看看