共计 1878 个字符,预计需要花费 5 分钟才能阅读完成。
简单来说通过在 sqlnet.ora 文件中设置如下参数来实现
TCP.VALIDNODE_CHECKING 控制是否打开数据库访问控制功能。
TCP.EXCLUDED_NODES 黑名单拒绝访问的 IP
TCP.INVITED_NODES 白名单允许访问的 IP
举例:
TCP.VALIDNODE_CHECKING = YES
TCP.EXCLUDED_NODES= (138.3.33.33)
TCP.INVITED_NODES=(138.4.44.44, hammer)
被拒绝的提示如:ORA-12537: TNS:connection closed
注意:
修改 sqlnet.ora 文件中的 IP 列表后都需要重启监听才能生效。
(原文是: Any changes to the values requires the TNS listener to be stopped and restarted.
但通过测试单机情况下 lsnrctl reload 同样可以生效。
测试 11G R2 RAC 环境下 lsnrctl reload 不但不会使得更新内容生效,而且还将已经注册到监听中的服务清掉,导致数据库无法连接。因此 rac 环境下不能使用 lsnrctl reload 命令,必须重启监听。
另外,11G R2 RAC 上有两种监听,本地监听和 SCAN 监听,想让控制列表的生效,必须重启对应的监听,如果修改控制列表后,grid 用户下(注意 11g rac 对监听的启停必须用 grid 用户,无论是 lsnrctl 还是 srvctl)lsnrctl stop – lsnrctl start 来重启了本地监听,那只有通过 vip 和本地 public IP 发起的数据库访问才会应用控制列表的更新内容,对于通过 SCAN IP 发起的访问并不应用更新内容,同样如果 lsnrctl stop listener_scan1 – lsnrctl start listener_scan1 重启 scan 监听,则值对 scan ip 发起的访问适用更新后的访问控制列表。
因此对于实际的生产可能同时存在适用 VIP 和使用 SCAN IP 访问的情况,因此需要所有监听全部重启,
srvctl [stop|start] listener -n [rac1|rac2|…]
srvctl [stop|start] scan_listener
并且对于 RAC 要记得修改所有节点的 sqlnet.ora 文件。)
启动监听是 sqlnet.ora 中 TCP.INVITED_NODES 中的域名和 IP 必须是可以解析的,但并不一定要可以连接,否则监听无法启动成功,提示 TNS-12560: TNS:protocol adapter error。
经过测试 TCP.EXCLUDED_NODES 中的 ip 或者域名如果不能解析并不影响监听的启动。
所谓的不能解析如 IP 写成了 192.168.1922.11,或者写了个域名 xxfdfd 但是无法解析成 IP 地址的情况。
TCP.INVITED_NODES 的优先级高于 TCP.EXCLUDED_NODES,即当一个 IP 同时出现在拒绝和允许列表里,那该 IP 允许访问。
TCP.INVITED_NODES、TCP.EXCLUDED_NODES 每项的 IP 列表格式都只能写一行不能换行。
数据库服务器自己的 IP 地址建议加到 INVITED_NODES 列表中,对于 RAC 环境则把 public ip、vip、scan ip 都加到 INVITED_NODES 列表中。
对于 11G rac 环境,该控制功能要设置在 GRID_HOME/network/admin 中的 sqlnet.ora 中,而不是 Oracle HOME 中。
参考
http://docs.oracle.com/cd/E11882_01/network.112/e41945/profile.htm#NETAG091
Note 462933.1 What is TCP_VALIDNODE_CHECKING and How to Use It
RAC: TCP.VALIDNODE_CHECKING Failing after Listener Reload (文档 ID 2109789.1)
Listener Fails to Start Using TCP.VALIDNODE_CHECKING: TNS-12532 TNS:Invalid Argument (文档 ID 287500.1)
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137699.htm