链接:
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群集其他节点的地址都加入到允许列表,否则监听器可能无法启动。
修改参数之后,重启监听器设置即可生效。
通过监听器的限制,通常属于轻量级,比在数据库内部通过触发器进行限制效率要高。
分享到:
相关推荐
Oracle提供了限制IP访问的功能,通过配置sqlnet.ora文件来实现。这项功能类似于防火墙的功能,限制或允许特定的IP或主机名通过Oracle Net来访问数据库。 sqlnet.ora文件通常位于$ORACLE_HOME/network/admin/目录下...
Oracle 提供了通过 sqlnet.ora 配置文件来实现限制 IP 访问的功能。该文件通常位于 $ORACLE_HOME/network/admin/ 目录下,与 tnsnames.ora 和 listener.ora 位于同一路径。 通过配置 sqlnet.ora 文件,可以实现轻量...
例如,当客户端输入连接字符串时,sqlnet.ora文件将决定如何解析连接字符串,如果连接字符串中包含了TNS名称,那么sqlnet.ora文件将查找tnsnames.ora文件,以获取相应的主机名或IP地址,然后将连接请求转发到...
`listener.ora` 文件是Oracle数据库系统中至关重要的网络配置文件之一,它负责管理数据库的监听器服务,确保外部应用程序能够通过网络访问到Oracle数据库。监听器的主要职责是接收远程请求并将这些请求分发到正确的...
其中包括监听地址、端口以及对某些IP地址的限制等信息。 **示例:** ``` LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ``` 此配置指示监听器...
【tnsnames.ora配置】是Oracle数据库网络配置中的一个重要组成部分,主要负责将易于记忆的TNS名称映射到实际的主机名或IP地址以及相关的服务信息。tnsnames.ora文件通常位于$ORACLE_HOME/network/admin目录下,与...
首先会从 `tnsnames.ora` 文件中查找,如果没有找到,则尝试将连接字符串视为主机名并通过网络解析其 IP 地址。 - **示例**: - 当用户尝试通过命令 `sqlplus sys/oracle@orcl` 连接到数据库时,Oracle 客户端会...
通过合理配置`sqlnet.ora`、`tnsnames.ora`和`listener.ora`这三个文件,可以确保Oracle数据库能够正常地在网络环境中被访问。理解这些配置文件的工作原理对于管理和维护Oracle数据库至关重要。
在实际应用中,可能还需要配置其他文件,如`sqlnet.ora`,来控制网络连接的行为,如加密选项、身份验证方式等。同时,`ldap.ora`文件用于配置LDAP(轻量级目录访问协议)连接,以便通过目录服务进行身份验证。 总之...
在 Oracle 数据库中,可以通过设置 `sqlnet.ora` 配置文件来控制哪些 IP 地址可以访问数据库实例。这主要通过 `tcp.validnode_checking`、`tcp.invited_nodes` 和 `tcp.excluded_nodes` 参数来实现。 - **`tcp....
总的来说,通过正确配置`sqlnet.ora`文件,可以有效地控制哪些IP地址能够连接到Oracle数据库,从而提高系统的安全性。在实际操作中,应确保所有必要的IP都被正确地添加到白名单或黑名单,并定期检查和更新这些设置,...
博客文章可能还涉及了如何通过 Oracle Net Services Administrator(NETCA)工具或者直接编辑文本文件来修改 listener.ora。在进行任何更改后,都需要使用 `lsnrctl reload` 或 `sqlplus / as sysdba` 后的 `ALTER ...
总之,通过修改`sqlnet.ora`文件并正确配置`tcp.validnode_checking`、`tcp.invited_nodes`和`tcp.excluded_nodes`,可以有效地控制哪些IP地址能够访问Oracle数据库。这有助于增强系统的安全性,防止未经授权的访问...
9. **ping**: 测试网络连接,如 `ping IP地址`。 10. **ipconfig**: 查看网络配置信息。 接下来,我们关注Oracle数据库的tnsnames.ora配置。tnsnames.ora文件位于Oracle客户端安装目录的network/admin子目录下,它...
ORA-12514 错误的原因和解决方法 ORA-12514 错误是 Oracle 数据库中常见的一种错误...7. 检查 sqlnet.ora 文件中的配置是否正确 通过遵循上述步骤,可以有效地解决 ORA-12514 错误,确保数据库连接的稳定性和安全性。
总结起来,`tnsnames.ora`、`listener.ora`和`sqlnet.ora`这三者共同构成了Oracle数据库的网络配置核心,确保了数据库服务的有效访问和安全通信。在日常维护或故障排查中,对这些文件的了解和正确配置是至关重要的。
首先,Oracle网络配置涉及三个主要文件:`listener.ora`、`sqlnet.ora`和`tnsnames.ora`,它们均位于`$ORACLE_HOME\network\admin`目录下。 1. `sqlnet.ora`文件: 此文件的作用类似于Linux或其他Unix系统的`...
它允许客户端通过服务名而不是IP地址和端口号来连接数据库。一个典型的`tnsnames.ora`条目如下: ``` MYDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = port)) (CONNECT_DATA = ...
除了禁用操作系统认证和禁止SYS远程登录外,还可以通过修改`sqlnet.ora`配置文件来限制能够连接数据库的IP地址,从而进一步提高数据库的安全性。 **具体步骤如下:** 1. **创建或修改`sqlnet.ora`文件**:如文中所...
如果找不到,它将尝试将"orcl"解析为一个主机名,通过网络解析其IP地址,然后连接到这个IP上的名为"orcl"的实例。如果NAMES.DIRECTORY_PATH仅包含(TNSNAMES),客户端将只从tnsnames.ora查找。 `tnsnames.ora`文件也...