一、基础环境

  操作系统:Windows 或 Linux
  数据库版本:Oracle Database 11.2.0.1.0 及以上版本

二、适用场景

  出于数据安全考虑,有时候需要对连接 Oracle 数据库的客户端 IP 做一些限制,只有白名单中的IP才能访问。不在白名单中的IP地址连接的时候提示:ORA-12537 TNS 连接已关闭。

三、操作步骤

  1、从需要允许连接的客户端远程登录数据库。

  2、查询正在连接的客户端IPv4地址,默认情况下,从 v$session 中不能直接获得客户端 IP地址,但可以在数据库中创建一个追踪客户端 IP 地址的触发器,以 system 用户登录数据库,执行以下代码创建触发器:

create or replace trigger on_logon_trigger after logon on database
begin  dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
end;
/

  3、查询正在连接Oracle数据库的客户端信息

select username,program,machine,client_info
from v$session
where username is not null
group by username,program,machine,client_info
order by username,program,machine,client_info

  4、查询结果如下:
username为数据库用户名,program为连接的程序,machine为客户端主机名, client_info 为客户端 IP 地址

username program machine client_info
DB_DZJK JDBC Thin Client cspt-app 172.3.2.159
DB_FXBD JDBC Thin Client cspt-app 172.3.2.159
DB_PLATFORM JDBC Thin Client cspt-app 172.3.2.159
DB_PLATFORM plsqldev.exe WORKGROUP\CSPT-APP
DB_SRFX JDBC Thin Client cspt-app
DB_SRYC JDBC Thin Client cspt-app 172.3.2.159

  5、在数据库监听配置文件中启用IP检查功能并添加IP地址清单
A、【推荐】使用图形界面配置方式。
【开始】,【Oracle - OraDb11g_home1】,【Net Manager】,【本地】-【概要文件】-下拉选择【一般信息】,切换到【访问权限】标签,勾选【检查TCP/IP客户机访问权限】,在【允许访问的客户机】右侧填入:主机名称或IP地址,每个一行。然后点击【文件】-【保存网络配置】即可。
B、修改$ORACLE_HOME/network/admin/sqlnet.ora文件
增加以下内容(#开头的是注释):

# 开启ip限制功能
tcp.validnode_checking=yes
# 允许访问数据库的IP地址列表,多个IP地址使用逗号分开
tcp.invited_nodes=(hostname,127.0.0.1,物理网卡地址,应用服务器地址,其他)
# 禁止访问数据库的IP地址列表,多个IP地址使用逗号分开
# tcp.excluded_nodes=(192.168.1.111)

  然后重启监听即可。

  注意事项:

  1、第2行必需写,任何平台都可以,但是只适用于TCP/IP。

  2、第4行和第6行任写一行即可,如果tcp.invited_nodes与tcp.excluded_nodes都存在,以tcp.invited_nodes为主。

  3、 需要添加服务器本机所有网卡配置的静态地址,否则通过 lsnrctl 将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器。可以添加整个网段,比如192.168.1.* 和 192.168.1.0/24 代表 192.168.1.X 这个网段都可以访问数据库。

  4、重启监听才能生效即可。

四、参考资料

  https://www.cnblogs.com/kangxuebin/articles/3103273.html

Oracle 数据库限制IP地址连接相关推荐

  1. 解决因改变oracle数据库的IP地址引起的“ORA-12541:TNS:无监听程序”

    解决因改变oracle数据库的IP地址引起的"ORA-12541:TNS:无监听程序" 转载https://blog.csdn.net/amanda04/article/detai ...

  2. 本地oracle无法通过ip地址连接解决方法(因个人环境原因可能不适用)

    本地oracle可以通过localhost连接,无法通过ip地址连接解决方法 本地安装了oracle11g r2 ,一直是自己本地玩,今天突然需要让别的同事访问我的数据库,死活连接不上,百度了很多教程 ...

  3. oracle数据库存储ip地址,oracle – 以十进制形式存储的IP地址 – PL / SQL以虚线四边形显示...

    这是您需要的功能: create or replace function inttoip(ip_address integer) return varchar2 deterministic is be ...

  4. 无法通过ip地址连接其它电脑的数据库,但是又可以ping通,错的不是配置,而是差了一个步骤

    真是场景其实是这样的,在建项目有很多同步数据的接口,数据暂时在我自己的oracle数据库上,所以,需要使用jdbc产生连接到本地数据库的对象,进而获取数据.但是web程序却在产生连接对象时出现异常,首 ...

  5. php sql oracle数据库,PHP、PLSQL连接oracle数据库的方法

    众所周知,在使用PHP(针对5.2及后续版本)和PLSQL操作oracle数据库前需要先安装客户端来部署环境,然而事实上在连接过程中仅仅只需要客户端中的几个文件罢了.完整版客户端对于我们这些数据库不在 ...

  6. 怎么查看网站数据库服务器ip地址,怎么查看网站数据库服务器ip地址吗

    怎么查看网站数据库服务器ip地址吗 内容精选 换一换 排查安全组规则.排查网络ACL.排查弹性云服务器内部网卡信息.排查不通端口.相同,请查看同一个VPC内的两台弹性云服务器无法互通或者出现丢包等现象 ...

  7. Oracle RAC 修改 IP 地址

    RAC 修改IP 这个操作本身也只有几步操作, 但是它涉及到OCR. 所以要格外小心.一般来说,如果不是必须要修改的话,尽量不要去修改OCR 的东西. 稳定第一. 在做之前,要手动的OCR 进行一个备 ...

  8. 数据库服务器修改地址,SQL数据库服务器IP地址修改

    SQL数据库服务器IP地址修改 内容精选 换一换 云数据库RDS服务支持开启公网访问功能,通过弹性公网IP进行访问.您也可通过弹性云服务器的内网访问云数据库RDS.准备弹性云服务器或可通过公网访问云数 ...

  9. 基于纯真本地数据库的 IP 地址查询 PHP 源码

    <?php /*** 纯真 IP 数据库查询 * * 参考资料:* - 纯真 IP 数据库 http://www.cz88.net/ip/* - PHP 读取纯真IP地址数据库 http://j ...

  10. 在centos上,oracle数据库更改IP后无法启动监听,解决方法

    在centos上,oracle数据库更改IP后无法启动监听,解决方法 参考文章: (1)在centos上,oracle数据库更改IP后无法启动监听,解决方法 (2)https://www.cnblog ...

最新文章

  1. php 贝瑟尔曲线,贝塞尔曲线的应用详解
  2. 构建node.js基础镜像_我如何使用Node.js构建工作抓取网络应用
  3. 10.14.1-linux设置时间等
  4. 关于所谓的穷人富人幸福论
  5. 早教机器人刷固件_机器人线刷包_机器人刷机包_机器人固件包_机器人救砖包 - 线刷宝ROM中心...
  6. 前端学习(2815):小程序学习之开发者工具介绍
  7. 使用文件监控对象FileSystemWatcher实现数据同步
  8. eclipse远程连接hadoop_Hadoop群启集群
  9. 删除U盘时提示无法停止‘通用卷’设备的解决方法
  10. 利用交换机排查网络故障-检测数据流量法
  11. aba问题mysql_Mysql中select + update并发更新问题
  12. 使用机器学习对美股涨跌预测系统的探究
  13. 2022-2028全球姿势矫正器行业调研及趋势分析报告
  14. linux默认的超级用户是,Linux操作系统默认的超级用户是()
  15. AtCoder ABC172 E - NEQ(组合数 + 容斥原理)
  16. 同花顺-图像算法工程师-笔试题
  17. Python3实现斐波那契数列.md
  18. Java 11 – ChaCha20-Poly1305加密示例
  19. org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8082]]解决办法
  20. echarts之渐变色设置

热门文章

  1. Base64基本原理及简单应用
  2. 目标检测之fasterRCNN:关于学习使用fasterRCNN做目标检测
  3. python批量下载pdf
  4. R语言_决策树rpart中的cp值
  5. 华硕win10键盘失灵_华硕笔记本键盘失灵,小编告诉你华硕笔记本键盘失灵怎么解决...
  6. 曲奇云盘资源搜索引擎_曲奇云盘资源共享群组
  7. Typora下载及使用
  8. echar 常用单词
  9. 图像处理MATLAB(图像分割)
  10. 软件工程导论—需求分析