欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

创建Oracle监听白名单

程序员文章站 2022-05-19 10:11:25
...

由于业务需要,需要使用白名单限制用户登录数据库的地址,决定使用数据库白名单功能!

一般但实例数据库启动白名单只需要在sqlnet.ora中添加以下内容即可:

   TCP.VALIDNODE_CHECKING=yes  (开启IP限制功能),
   TCP.INVITED_NODES=(192.168.1.103,ip2,ip3,..,..本地IP..)--白名单,必须本地IP,否则监听会起不来,
   TCP.EXCLUDED_NODES=(192.168.1.102) --黑名单

由于本环境为RAC环境,操作稍有不同。
1 ORACLE用户下的$ORACLE_HOME/NETWORK/ADMIN目录下没有sqlnet.ora文件,必须使用grid用户登录进入$ORACLE_HOME/NETWORK/ADMIN下的sqlnet.ora文件,添加修改。

2 添加白名单时必须添加本地IP,因为是RAC环境,必须把连个节的真实IP,私有IP,VIP,SCAN IP全部添加进白名单。

3 启动时不能像单机一样使用lsnrctl reload,需使用srvctl stop listener -n 节点1srvctl start listener -n 节点1,可以一个节点修改好后,再修改另一个节点,防止影响业务。

srvctl start listener -n node1
srvctl stop listener -n node2
srvctl stop listener -n node [-l listenername]

今天发现一个SRVCTL命令的小bug:
如果用srvctl关闭监听后,再用lsnrctl start打开监听。这时srvctl仍然认为监听已经关闭。因此,再次使用srvctl关闭监听,似乎srvctl根本没有去执行。如果希望srvctl可以关闭监听,那么需要先用srvctl启动监听,然后再关闭。搜索了一下metalink,没有发现关于这个问题的说明。而且,这个问题只在关闭监听时出现,启动监听则没有问题。svrctl显然只记录它自己的操作,而不去检查listener真正的状态。

windows下配置白名单sqlnet.ora中一定要写自己的主机名!!!