通过Oracle数据库访问控制功能的方法(Database access control)
修改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
通过Oracle数据库访问控制功能的方法(Database access control)的更多相关文章
- 设置sqlplus访问远程oracle数据库的最快方法
设置sqlplus访问远程oracle数据库的最快方法 时间:2010-01-21 10:57来源: 作者: 点击: 2次 设置sqlplus访问远程oracle数据库的最快方法,如果要连接远程数据库 ...
- sqlplus命令行登录oracle数据库的N种方法盘点
欢迎访问我的个人博客IT废柴,本文永久链接移至:sqlplus命令行登录oracle数据库的N种方法盘点 sqlplus有几种登陆方式Oracle数据库, 比如: 1.以操作系统权限认证的oracle ...
- Oracle数据库访问客户端 sqldeveloper-18.4.0-376.1900-x64 下载
Oracle数据库访问客户端 sqldeveloper-18.4.0-376.1900-x64 下载地址:https://pan.baidu.com/s/1RnHVuMcCNZQ7ncHLKDJ33Q
- Asp.Net 应用程序在IIS发布后无法连接oracle数据库问题的解决方法
asp.net程序编写完成后,发布到IIS,经常出现的一个问题是连接不上Oracle数据库,具体表现为Oracle的本地NET服务配置成功:用 pl/sql 等工具也可以连接上数据库,但是通过浏览器中 ...
- Oracle数据库访问客户端 sqldeveloper-19.2.1.247.2212-x64 下载
Oracle数据库访问客户端 sqldeveloper-19.2.1.247.2212-x64 地址:https://pan.baidu.com/s/1iojCVxwXocyM8oObTf0xaw 这 ...
- 转:Oracle R12 多组织访问的控制 - MOAC(Multi-Org Access Control)
什么是MOAC MOAC(Multi-Org Access Control)为多组织访问控制,是Oracle EBS R12的重要新功能,它可以实现在一个Responsibility下对多个Opera ...
- Oracle R12 多组织访问的控制 - MOAC(Multi-Org Access Control)
什么是MOAC MOAC(Multi-Org Access Control)为多组织访问控制,是Oracle EBS R12的重要新功能,它可以实现在一个Responsibility下对多个Opera ...
- Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法
一. 问题: 如何实现在Oracle数据库中访问其他用户的表时不需加表所属的用户名 二. 举例: Oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 TEST表,需要这样访问 ...
- Oracle 数据库的组成(instance+database)
Oracle服务器是一种对象关系数据库管理系统,它为信息管理提供开放.综合.集成的方法. Oracle服务器中有多种进进程.内存结构和文件: Oracle服务器由一个Oracle实例和一个Oracle ...
随机推荐
- MVC项目实践,在三层架构下实现SportsStore-02,DbSession层、BLL层
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- Android --通知栏Notification
参考博客:Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它) //创建一个通知栏的Builder构造类 (Create a Notification Bui ...
- 串口通信类,WPF
参考之前的资料,写了一个自己常用的串口类, 字符串发送类型用了两种方式,char[] 和byte[] : 数据接收也是采用两种 char[] 和byte[] 两种. 类代码贴出来: public cl ...
- Demo3使用bootstrap
利用Ajax实现信息获取,使用bootstrap来美化页面,果然很强大. 将bootstrap的API添加到引用.如图程序源码结构: 页面源码: <!DOCTYPE html PUBLIC &q ...
- ios推送
1. ios 在杀掉app后,只能接受到系统通知,JPUSH自定义消息不能接受到.系统通知经过实验只能接收到50左右个汉字. 2. 实现方案: 推送的时候,JPUSH推送一个消息,App客户端获取到数 ...
- Hanoi T note
hanoi(n,x,y,z) { hanoi(n-1,x,z,y);//n-1 from x to y move(x,z);//x->z hanoi(n-1,y,x,z);//n-1 from ...
- git打tag 三步骤
git status git tag publish/1.0.0 git push origin publish/1.0.0
- Java基础之处理事件——使窗口处理自己的事件(Skethcer 1 handing its own closing event)
控制台程序. 为表示事件的常量使用标识符可以直接启用组件对象的特定事件组.调用组件的enableEvent()方法,并把想要启用事件的标识符传送为参数,但这只在不使用监视器的情况下有效.注册监听器会自 ...
- 理解运算符 || 和 && 及方法
|| 前面为true的话直接返回前面的值,前面为false的话返回后面的值.如下: console.log(0 || 1); console.log(1 || 0); console.log(1 || ...
- java io读书笔记(6) Writing Arrays of Bytes
显而易见,一次性写出一堆数据,要比一个byte一个byte的写,快多了,因此,outputstream,给出了2个增强型的write: public void write(byte[] data) t ...