通过SQLNET.ora文件限制Ip地址访问

链接:http://www.eygle.com/archives/2008/01/sqlnetora_ip_limit.html


在Oracle数据库中,我们可以通过SQLNET.ora文件实现地址访问限制。 在SQLNET.ora文件中设置以下参数可以实现IP访问限制:

tcp.validnode_checking=yes  tcp.invited_nodes=(ip1,ip2......)  tcp.excluded_nodes=(ip1,ip2......)

在未设置这些参数前,测试数据库可以正常访问:

D:/>tnsping eygle TNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-1月 -2008 14:52:52 Copyright (c) 1997, 2006, Oracle.  All rights reserved. 已使用的参数文件,: C:/oracle/10.2.0/network/admin/sqlnet.ora 已使用 TNSNAMES 适配器来解析别名 Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.33.11)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = eygle))) OK (30 毫秒)

当设置参数之后:

[oracle@jumper admin]$ cat sqlnet.ora # SQLNET.ORA Network Configuration File: /opt/oracle/product/9.2.0/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME) tcp.validnode_checking=yes tcp.invited_nodes=(172.16.33.11,172.16.34.89)

重新启动监听器使设置生效:

[oracle@jumper admin]$ lsnrctl start LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 28-JAN-2008 14:42:01 Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved. Starting /opt/oracle/product/9.2.0/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 9.2.0.4.0 - Production System parameter file is /opt/oracle/product/9.2.0/network/admin/listener.ora Log messages written to /opt/oracle/product/9.2.0/network/log/listener.log Trace information written to /opt/oracle/product/9.2.0/network/trace/listener.trc Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias                    LISTENER Version                  TNSLSNR for Linux: Version 9.2.0.4.0 - Production Start Date                28-JAN-2008 14:42:01 Uptime                    0 days 0 hr. 0 min. 0 sec Trace Level              support Security                  ON SNMP                      OFF Listener Parameter File  /opt/oracle/product/9.2.0/network/admin/listener.ora Listener Log File        /opt/oracle/product/9.2.0/network/log/listener.log Listener Trace File      /opt/oracle/product/9.2.0/network/trace/listener.trc Listening Endpoints Summary...   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521))) Services Summary... Service "eygle" has 1 instance(s).   Instance "eygle", status UNKNOWN, has 1 handler(s) for this service... Service "julia" has 1 instance(s).   Instance "eygle", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully

我们再来看客户端的访问:

D:/>tnsping eygle TNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-1月 -2008 14:53:19 Copyright (c) 1997, 2006, Oracle.  All rights reserved. 已使用的参数文件: C:/oracle/10.2.0/network/admin/sqlnet.ora 已使用 TNSNAMES 适配器来解析别名 Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.33.11)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = eygle))) TNS-12547: TNS: 丢失连接

需要注意的是一定要将本地地址,或者Cluster群集其他节点的地址都加入到允许列表,否则监听器可能无法启动。 修改参数之后,重启监听器设置即可生效。 通过监听器的限制,通常属于轻量级,比在数据库内部通过触发器进行限制效率要高。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

配置客户端连接到ASM实例

   对于Oracle 网络配置,我们通常通过negmgr或者netca来完成客户端连接到数据库实例。而对于连接到ASM实例,同样可以实现从客户端来进行连接。不...

8340
来自专栏乐沙弥的世界

Oracle 11g RAC 环境下单实例非缺省监听及端口配置

      如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器。大多数情况下我们使用...

13320
来自专栏我的博客

filter_input()详解,$_GET,$_POST,$_ENV,$_SERVER,$_SESSION,$_REQUEST

filter_input() 函数从脚本外部获取输入,并进行过滤。 本函数用于对来自非安全来源的变量进行验证,比如用户的输入。 本函数可从各种来源获取输入: I...

34950
来自专栏xingoo, 一个梦想做发明家的程序员

Oracle 监听器无法启动(TNS-12537,TNS-12560,TNS-00507)

Oracle启动监听报错,提示 连接中断 [oracle@localhost ~]$ lsnrctl start LSNRCTL for Linux: Ver...

306100
来自专栏杨建荣的学习笔记

11g rac配置scan ip(r6笔记第30天)

如果是从10g转战11g rac就会发现很多不同之处,其中一个比较大的改变就是在11g中有了一个新特性scan,其实这是一个简称,完整的名称为:SCAN(Si...

29240
来自专栏有困难要上,没有困难创造困难也要上!

Linux下启动Oracle服务

90020
来自专栏乐沙弥的世界

ORA-00119,ORA-00132 错误处理

最近系统启动时,收到了ORA-00119以及ORA-00132的错误,该错误实际上跟LISTENER有关,通常的处理办法是将spfile转储为pfile然后从...

12520
来自专栏深度学习那些事儿

macOS使用django安装mysqlclient遇到的问题(mysqlclient 1.3.3 or newer is required)

最近需要使用django搭建一个网站,使用的数据库是mysql。 mac电脑里面已经安装好了mysql-5.7-community。 之前使用的python...

52140
来自专栏乐沙弥的世界

跨NAT,防火墙(firewall)的RAC监听配置(ORA-12545)

    对于存在NAT或防火墙的RAC数据库,在启用了服务器端的load balance后,经常会碰到ORA-12545连接错误,这是因为服务器端转发客户端连接...

9330
来自专栏乐沙弥的世界

记一次离奇的TNS-12545 TNS-12560 TNS-00515

      最近reportDB监听无法随系统自启动,现象比较怪异。因为该服务器上的另一个实例的监听可以正常启动,这个不能自启动实例的监听手动启动又是正常的。因...

13820

扫码关注云+社区

领取腾讯云代金券