创建Oracle监听白名单
由于业务需要,需要使用白名单限制用户登录数据库的地址,决定使用数据库白名单功能!
一般但实例数据库启动白名单只需要在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.or
a文件,添加修改。
2 添加白名单时必须添加本地IP
,因为是RAC
环境,必须把连个节的真实IP
,私有IP,VIP,SCAN IP
全部添加进白名单。
3 启动时不能像单机一样使用lsnrctl reload
,需使用srvctl stop listener -n
节点1
,srvctl 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
中一定要写自己的主机名!!!
上一篇: Spark与Flink:对比与分析
下一篇: Shiro授权