• <li id="gs2cs"><wbr id="gs2cs"></wbr></li>
    <dd id="gs2cs"><tr id="gs2cs"></tr></dd>
    <dd id="gs2cs"></dd>
  • 查看: 46302|回复: 16

    [笔记] 【方法】如何限定IP访问Oracle数据库

    [复制链接]
    论坛徽章:
    18
    青年奥林匹克运动会-高尔夫
日期:2014-09-10 14:54:51目光如炬
日期:2018-02-11 22:00:00目光如炬
日期:2018-01-08 17:00:01目光如炬
日期:2017-11-19 22:00:00目光如炬
日期:2017-11-12 22:00:01火眼金睛
日期:2017-09-30 22:00:01目光如炬
日期:2017-09-03 22:00:01火眼金睛
日期:2017-09-01 17:00:07火眼金睛
日期:2017-02-28 22:00:00火眼金睛
日期:2017-02-06 01:02:33
    跳转到指定楼层
    1#
    发表于 2017-3-18 21:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在Oracle中,有3种办法可以限定特定IP访问数据库。第一种是利用登录触发器,如下:
    CREATE OR REPLACE TRIGGER CHK_IP_LHR
      AFTER LOGON ON DATABASE
    DECLARE
      V_IPADDR    VARCHAR2(30);
      V_LOGONUSER VARCHAR2(60);
    BEGIN
      SELECT SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
             SYS_CONTEXT('USERENV', 'SESSION_USER')
        INTO V_IPADDR, V_LOGONUSER
        FROM DUAL;
      IF V_IPADDR LIKE ('192.168.59.%') THEN
        RAISE_APPLICATION_ERROR('-20001', 'User '||V_LOGONUSER||' is not allowed to connect from '||V_IPADDR);
      END IF;
    END;
    /
    需要注意的问题:
    ① 触发的对象类型可以为DATABASE,也可以为“用户名.SCHEMA”,如:
    AFTER LOGON ON DATABASE
    AFTER LOGON ON SCOTT.SCHEMA
    ② 当触发的对象类型为DATABASE的时候,登录用户不能拥有“ADMINISTER DATABASE TRIGGER”的系统权限;当触发的对象类型为“用户名.SCHEMA”的时候,登录用户不能拥有“ALTER ANY TIGGER”的系统权限。否则,这些用户还是会正常登录到数据库,只是将相应的报错信息写入到告警日志中。所以,拥有IMP_FULL_DATABASE和DBA角色的用户以及SYS和EXFSYS用户将不能通过这种方式限制登录。
    ③ 隐含参数“_SYSTEM_TRIG_ENABLED”的默认值是TRUE,即允许DDL和系统触发器。当设置隐含参数“_SYSTEM_TRIG_ENABLED”为FALSE的时候,将禁用DDL和系统触发器。所以,当该值设置为FALSE的时候将不能通过这种方式限制登录。
    第二种是修改$ORACLE_HOME/network/admin/sqlnet.ora文件,增加如下内容:
    TCP.VALIDNODE_CHECKING=YES  #开启IP限制功能
    TCP.INVITED_NODES=(127.0.0.1,IP1,IP2,……)  #允许访问数据库的IP地址列表,多个IP地址使用逗号分开
    TCP.EXCLUDED_NODES=(IP1,IP2,……)  #禁止访问数据库的IP地址列表,多个IP地址使用逗号分开
    之后重新启动监听器即可。这样客户端在登录的时候会报“ORA-12537: TNS:connection closed”的错误。
    需要注意的问题:
    ① 需要设置参数TCP.VALIDNODE_CHECKING为YES才能激活该特性。
    ② 一定要许可或不要禁止数据库服务器本机的IP地址,否则通过lsnrctl将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器,而该IP被禁止了,但是通过服务启动或关闭则不影响。
    ③ 当参数TCP.INVITED_NODES和TCP.EXCLUDED_NODES设置的地址相同的时候以TCP.INVITED_NODES的配置为主。
    ④ 修改之后,一定要重起监听才能生效,而不需要重新启动数据库。
    ⑤ 这个方式只是适合TCP/IP协议。
    ⑥ 这个配置适用于Oracle 9i以上版本。在Oracle 9i之前的版本使用文件protocol.ora。
    ⑦ 在服务器上直接连接数据库不受影响。
    ⑧ 这种限制方式是通过监听器来限制的。
    ⑨ 这个限制只是针对IP检测,对于用户名检测是不支持的。
    第3种是修改数据库服务器的IPTABLES(配置文件:/etc/sysconfig/iptables)来限制某些IP登录数据库服务器。如下:
    iptables -A INPUT -s 192.168.59.1/32 -i eth0 -p tcp  --dport 1521 -j DROP
    service iptables save
    则,192.168.59.1这台主机将不能通过1521端口连接到数据库服务器了,会报“ORA-12170: TNS:Connect timeout occurred”的错误。

    非常感谢各位朋友支持小麦苗。
    论坛徽章:
    22
    生肖徽章2007版:猴
日期:2016-05-19 15:26:34生肖徽章2007版:猪
日期:2016-05-19 15:26:34生肖徽章2007版:龙
日期:2016-05-19 15:26:34生肖徽章2007版:兔
日期:2016-05-19 15:26:34ITPUB9周年纪念徽章
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:板球
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:举重
日期:2016-05-19 15:26:342014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02优秀写手
日期:2014-04-09 06:00:22
    2#
    发表于 2017-3-18 21:40 来自手机 | 只看该作者
    对dba权限的用户是没办法,不过可以用循环sleep阻止他

    使用道具 举报

    回复
    论坛徽章:
    18
    青年奥林匹克运动会-高尔夫
日期:2014-09-10 14:54:51目光如炬
日期:2018-02-11 22:00:00目光如炬
日期:2018-01-08 17:00:01目光如炬
日期:2017-11-19 22:00:00目光如炬
日期:2017-11-12 22:00:01火眼金睛
日期:2017-09-30 22:00:01目光如炬
日期:2017-09-03 22:00:01火眼金睛
日期:2017-09-01 17:00:07火眼金睛
日期:2017-02-28 22:00:00火眼金睛
日期:2017-02-06 01:02:33
    3#
     楼主| 发表于 2017-3-18 22:23 | 只看该作者
    jiaxu2000 发表于 2017-3-18 21:40
    对dba权限的用户是没办法,不过可以用循环sleep阻止他

    可以测试的试试,我当时想着是否可以直接杀掉相应的会话,待会测测

    使用道具 举报

    回复
    论坛徽章:
    22
    生肖徽章2007版:猴
日期:2016-05-19 15:26:34生肖徽章2007版:猪
日期:2016-05-19 15:26:34生肖徽章2007版:龙
日期:2016-05-19 15:26:34生肖徽章2007版:兔
日期:2016-05-19 15:26:34ITPUB9周年纪念徽章
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:板球
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:举重
日期:2016-05-19 15:26:342014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02优秀写手
日期:2014-04-09 06:00:22
    4#
    发表于 2017-3-18 22:26 来自手机 | 只看该作者
    kill,我试过没成功,你再试试吧

    使用道具 举报

    回复
    论坛徽章:
    2
    灰彻蛋
日期:2012-02-03 17:26:27弗兰奇
日期:2016-11-18 15:15:18
    5#
    发表于 2017-3-20 11:07 | 只看该作者
    我觉得限定IP访问 应该作在网络层把

    使用道具 举报

    回复
    论坛徽章:
    2
    ITPUB15周年纪念
日期:2017-03-16 09:14:40娜美
日期:2017-11-20 17:24:55
    6#
    发表于 2017-3-20 11:29 | 只看该作者
    jiaxu2000 发表于 2017-3-18 21:40
    对dba权限的用户是没办法,不过可以用循环sleep阻止他

    对sys用户都是有用的,限制IP的话

    使用道具 举报

    回复
    论坛徽章:
    8
    ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:19现代
日期:2013-11-28 11:01:14马上加薪
日期:2014-03-31 10:53:18马上有钱
日期:2014-03-31 15:05:51优秀写手
日期:2014-04-26 05:59:55暖羊羊
日期:2015-03-04 14:53:002015年新春福章
日期:2015-03-06 11:58:18
    7#
    发表于 2017-3-24 12:29 | 只看该作者
    限制是在创建连接里, 和数据库内角色有什么关系? 白名单那是listener 层过滤, 还有AVDF

    使用道具 举报

    回复
    论坛徽章:
    0
    8#
    发表于 2017-3-24 14:36 | 只看该作者

    使用道具 举报

    回复
    论坛徽章:
    73
    2010新春纪念徽章
日期:2010-03-01 11:06:132011新春纪念徽章
日期:2011-02-18 11:43:332012新春纪念徽章
日期:2012-01-04 11:55:422013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:44:08马上有车
日期:2015-01-19 09:45:33最佳人气徽章
日期:2012-03-13 17:39:18ITPUB季度 技术新星
日期:2012-11-27 10:16:10问答徽章
日期:2013-10-23 15:13:22林肯
日期:2013-11-02 08:34:46
    9#
    发表于 2017-3-24 14:37 | 只看该作者
    不错,收藏。

    使用道具 举报

    回复
    论坛徽章:
    22
    生肖徽章2007版:猴
日期:2016-05-19 15:26:34生肖徽章2007版:猪
日期:2016-05-19 15:26:34生肖徽章2007版:龙
日期:2016-05-19 15:26:34生肖徽章2007版:兔
日期:2016-05-19 15:26:34ITPUB9周年纪念徽章
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:板球
日期:2016-05-19 15:26:342010广州亚运会纪念徽章:举重
日期:2016-05-19 15:26:342014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02优秀写手
日期:2014-04-09 06:00:22
    10#
    发表于 2017-3-24 21:42 来自手机 | 只看该作者
    我说的对dba用户无效,指的是触发器,不要误解了,你要是把网线或电源线拔了,别说dba了,神仙也登不上

    使用道具 举报

    回复

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

    TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
      ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
      ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
    CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
    京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
      
    快速回复 返回顶部 返回列表
    亚洲三级理论