限制访问Oracle客户端IP方法总结


这里讨论的在Oracle数据库层面上限制IP的方法,当然还有可以在网络层面上限制IP,例如防火墙软件等方式。应用层,例如:WebLogic设置访问数据库的IP。

  在Oracle数据库中由于版本的差异,可以通过不同的方式来解决这些问题。

有几种方式来实现这样的功能:

1、 修改SQLNET.ora文件限制访问数据库的IP。
2、 使用触发器实现。

sqlnet.ora文件的功能:

1. Specify the client domain to append to unqualified names

2. Prioritize naming methods

3. Enable logging and tracing features

4. Route connections through specific processes

5. Configure parameters for external naming

6. Configure Oracle Advanced Security

7. Use protocol-specific parameters to restrict access to the database

这里使用的就是sqlnet.ora文件的第七项功能限制访问数据库的连接。

适用版本:oracle 9i以上版本
在9i提供了几个参数:
TCP.EXCLUDED_NODES
设置禁止访问数据库的IP地址列表。
TCP.INVITED_NODES
设置允许访问数据库的IP地址列表,当这个参数和TCP.EXCLUDED_NODES设置的地址相同的时候将覆盖TCP.EXCLUDED_NODES设置。
TCP.VALIDNODE_CHECKING
检测上述参数的设置。

例如:
tcp.validnode_checking=yes
#允许访问的ip
tcp.invited_nodes =(ip1,ip2,……)
#不允许访问的ip
tcp.excluded_nodes=(ip1,ip2,……)

 

通过这样的设置就可以根据自己的需要更改,

需要注意的问题:
1、 需要设置参数为YES,这样才能激活。
2、 建议设置允许访问的IP,因为IP地址有可能被随意修改,就不能起到自己的目的。
3、 TCP当参数TCP.INVITED_NODES和TCP.EXCLUDED_NODES设置的地址相同的时候将覆盖TCP.EXCLUDED_NODES设置。
4、 需要重启监听器才能生效。
5、 这个方式只是适合TCP协议。
6、 这个配置适用于9i以上版本。在9i之前的版本使用文件protocol.ora。
7、 在服务器上直接连接数据库不受影响。
8、 这种限制方式事通过监听器来限制的。
 9、 这个限制只是针对IP检测,对于用户名检测事不支持的。
10、使用触发器


create or replace trigger stop_52_connect
after logon on scott2.schema
declare
ipinfo VARCHAR2(30);
begin
select sys_context('userenv','ip_address') into ipinfo from dual;
if ipinfo='172.16.0.52' then
raise_application_error('-20001','you can not logon by scott2');
end if;
end stop_52_connect;

本文作者:



相关阅读:
firefox 滚动条消失引起页面抖动的问题
Oracle一则诡异的程序
帮助你好好学习CSS的“边”和“内容”
基于jquery的高性能td和input切换并可修改内容实现代码
用UNetbootin轻松把Linux操作系统装进U盘
用ASP实现IE地址栏参数的判断
10个非常有用但是IE浏览器不能使用的CSS属性
css box-shadow阴影不透明的解决办法
用JavaScript实现窗口从天而降效果
ExtJs事件机制基本代码模型和流程解析
sql server动态连接odbc的dsn
JQuery操作表格(隔行着色,高亮显示,筛选数据)
asp.net TemplateField模板中的Bind方法和Eval方法
初次远程做Linux Iptables规则注意事项
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4