通过Oracle数据库访问控制功能(Database access control)

企鹅博客
企鹅博客
企鹅博客
25193
文章
0
评论
2020年10月7日05:05:36 评论 7 views 1751字阅读5分50秒

简单来说通过在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)

继续阅读
NUMA导致的Oracle性能问题 Linux-数据库

NUMA导致的Oracle性能问题

背景简介: Oracle版本:11.2.0.4   OS 版本:OEL5.8 在一次Oracle的Dataguard正常switchover过程中,遇到了一个极其诡异的问题,一条主业务的SQL语句在新...
Oracle中IP地址和掩码转换成CIDR格式 Linux-数据库

Oracle中IP地址和掩码转换成CIDR格式

遇到的问题如下:数据库中存储了IP地址,以及IP地址掩码,需要将他们转化成CIDR格式的,并且不仅仅是将掩码转化成CIDR对应的数字的问题,需要将原有的IP地址转化成对应的网络地址,例如IP地址是58...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: