在Oracle数据库中,我们可以通过SQLNET.ora文件实现地址访问限制。
在SQLNET.ora文件中设置以下参数可以实现IP访问限制:
tcp.validnode_checking=yes
#允许访问的IP
tcp.invited_nodes=(ip1,ip2......)
#禁止访问的IP
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群集其他节点的地址都加入到允许列表,否则监听器可能无法启动。
修改参数之后,重启监听器设置即可生效。
通过监听器的限制,通常属于轻量级,比在数据库内部通过触发器进行限制效率要高。
分享到:
相关推荐
认识oracle中的sqlnet.ora tnsnames.ora listener.ora三个文件
listener.ora sqlnet.ora tnsnames.ora文件详解
linux上的sqlnet.ora限制IP访问[借鉴].pdf
oracle中的sqlnet.ora+tnsnames.ora+listener.ora三个文件的说明,对于初学者来说非常实用
Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件区别.docx
NULL 博文链接:https://ajita.iteye.com/blog/1749626
linux上的sqlnet.ora限制IP访问.pdf
oracle init.ora 文件据在位置
如何正确oracle配置tnsname.ora文件
oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht
配置ORACLE的listener.ora、tnsnames.ora
Oracle中,Oracle\Network\ADMIN\tnsnames.ora 文件很重要
tnsnames.ora配置文件,免安装使用pl/sql连接远程数据库
Oracle init.ora 配置详解 Oracle init.ora 配置详解 Oracle init.ora 配置详解
oracle网络配置 主要讲解listener.ora、sqlnet.ora、tnsnames.ora三个配置文件的构成及作用,对了解oracle网络配置有很大的帮助
oracle数据库的配置文件,用于进行连接配置
Tnsnames.ora——这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似 NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会...
ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息。 一般tnsnames.ora 是建立在客户机上的。如果是客户机/服务器结构,整个网络上只有一台机器安装了ORACLE数据库服务器, 那么只需在每个要访问ORACLE服务器...
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
tnsnames.ora 配置文件