一、基础环境
操作系统: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.toymoban.com/news/detail-451335.html
四、参考资料
https://www.cnblogs.com/kangxuebin/articles/3103273.html文章来源地址https://www.toymoban.com/news/detail-451335.html
到了这里,关于Oracle 数据库限制IP地址连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!