百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

oracle数据库访问控制配置(白名单)

ccwgpt 2025-01-16 18:28 43 浏览 0 评论

最近有同事咨询不通过外面的防火墙配置,仅使用数据库能否实现对数据库的访问控制?答案是可以的,通过修改监听相关配置文件是可以实现对客户端地址的过滤。

单机环境

1、进入监听目录,修改sqlnet.ora文件
/u01/app/oracle/product/12.2.0/dbhome_1/network/admin
添加如下参数
[oracle@ora12c admin]$ cat sqlnet.ora 
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

TCP.VALIDNODE_CHECKING=yes 
# allowlist 
#允许访问数据库的地址如下,注意务必添加数据库本身的地址和主机名(监听的地址是哪个)否则监听启动失败
TCP.INVITED_NODES=(127.0.0.1,localhost,ora12c,数据库服务器地址,客户端1ip,客户端2ip)  
地址需要在一行写入不要换行写入。

# blocklist   
#禁止访问数据库的如下
#TCP.EXCLUDED_NODES=(10.10.10.10,ip2,ip3)

允许和禁止可以选择一个,白名单机制即如果配置了允许的那么不在列表中的自动为禁止。
如果两者同时存在,允许列表的优先级高于拒绝列表

2、重启监听
lsnrctl stop
lsnrctl start
lsnrctl status查看监听状态,可通过alter system register快速注册服务。

注意:TCP.INVITED_NODES中需要包括数据库自己的ip地址和主机名,否则监听会启动失败。

[oracle@ora12c admin]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 30-AUG-2023 09:24:21

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora12c)(PORT=1521)))
TNS-12547: TNS:lost contact
 TNS-12560: TNS:protocol adapter error
  TNS-00517: Lost contact
   Linux Error: 104: Connection reset by peer
如上提示就表示,TCP.INVITED_NODES中没有把本地的地址或主机名写进去,导致监听启动失败
,添加相应ip修改完列表后,再次执行
$lsnrctl stop
$lsnrctl start

测试效果

当非法的客户端进行访问的时候,会直接出现ORA-12547的错误。
[oracle@ ~]$ sqlplus sys/oracle@xxxxxxx:1521/oradb as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 30 08:59:59 2023

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-12547: TNS:lost contact
Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied

集群环境配置

1、登陆GRID用户,进入以下目录
cd /u01/app/19.0.0/grid/network/admin
2、同单机模式一样配置sqlnet.ora,每个节点都要配置,
需要把RAC的Public IP,Private IP,VIP,Scan IP 都加到 TCP.INVITED_NODES 列表;
地址保持在一行。
#注意dg环境中从库的地址也需要写入进去
#如果一个节点配置的白名单另外一个节点没有配置则通过第二个节点仍然可以连接数据库。
3、重启监听
#NODE 1:
#启动监听后检查监听没问题再重启其他节点;
srvctl stop listener -n RAC1
srvctl start listener -n RAC1
# lsnrctl status  

#NODE 2:
srvctl stop listener -n RAC2
srvctl start listener -n RAC2

# lsnrctl status

其他注意

注意,如果“邀请节点”列表中没有数据库服务器的主机名或IP地址,则PMON将不会向侦听器注册。
需要在TNS侦听器使用的sqlnet.ora文件中设置参数,因为这是通过侦听器的访问限制
对值的任何更改都需要停止并重新启动TNS侦听器。
所有主机名必须是可解析的,否则TNS侦听器将无法启动
邀请列表优先于排除列表
所有条目必须在一行上(最好通过Net Manager添加条目)
SCAN和TCP.INVITED_NODES将要求将SCAN VIP和Node Vips添加到GRID Infrastructure SQLNET.ORA文件中。
注1:  由于是侦听器检查INVITED或EXCLUDED节点,因此应将RAC环境中的sqlnet.ora文件更改更改为GRID_HOME / network / admin / sqlnet.ora
注2:  所有侦听器(SCAN和VIP)必须对INVITED或EXCLUDED节点列表进行任何更改后,将完全重新启动(不重新加载),
tcp.invited_nodes 需要满足如下条件才可成功启动监听:
1、需要设置参数 TCP.VALIDNODE_CHECKING 为YES才能激活该特性;
2、tcp.invited_nodes的值中一定要包括本机地址(127.0.0.1 / 192.0.20.51)或localhost,因为监听需要通过本机ip去访问监听,一旦禁止lsnrct将不能启动或停止监听;
3、此方式只适合tcp/ip协议;
4、此方式是通过监听限制白名单的;
5、针对的是ip地址而不是其他(如用户名等);
6、修改配置后需要重启监听才可生效。

相关推荐

MFC、Qt、WPF?该用哪个?(mfc和wpf区别)

MFC、Qt和WPF都是流行的框架和工具,用于开发图形用户界面(GUI)应用程序。选择哪个框架取决于你的具体需求和偏好。MFC(MicrosoftFoundationClass)是微软提供的框架,...

一款WPF开发的通讯调试神器(支持Modbus RTU、MQTT调试)

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍Wu.CommTool是一个基于C#、WPF、Prism、MaterialDesign...

关于面试资深C#、WPF开发工程师的面试流程和问题

一、开场(2-3分钟)1.欢迎应聘者,简单介绍公司和面试流程。2.询问应聘者是否对公司或岗位有初步的问题。二、项目经验与技术应用(10-20分钟)1.让应聘者详细介绍几个他参与过的C#、...

C# WPF MVVM模式Prism框架下事件发布与订阅

01—前言处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Prism提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事件进行...

WPF 机械类组件动画制作流程简述(wps上怎么画机械结构简图)

WPF机械类组件动画制作流程简述独立观察员2025年3月4日一、创建组件创建组件用户控件,将组件的各部分“零件”(图片)拼装在一起,形成组件的默认状态:二、给运动部分加上Rend...

C#上位机WinForm和WPF选哪个?工控老油条的"血泪史"

作为一个从互联网卷进工控坑的"跨界难民",在这会摸鱼的时间咱就扯一下上位机开发选框架这档子破事。当年我抱着WPF的酷炫动画一头扎进车间,结果被产线老师傅一句"你这花里胡哨的玩意...

【一文扫盲】WPF、Winform、Electron有什么区别?

近年来,随着软件开发的不断发展,开发人员面临着选择适合他们项目的各种框架和工具的挑战。在桌面应用程序开发领域,WPF、Winform和Electron是三个备受关注的技术。本文将介绍这三者的区别,帮助...

一个开源、免费、强大且美观的WPF控件库

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍HandyControl是一套基于WPF(WindowsPresentationF...

WPF 根据系统主题自动切换浅色与深色模式

WPF根据系统主题自动切换浅色与深色模式控件名:Resources作者:WPFDevelopersOrg-驚鏵原文链接[1]:https://github.com/WPFDevelopers...

WPF与WinForm的本质区别(wpf与maui)

在Windows应用程序开发中,WinForm和WPF是两种主要的技术框架。它们各自有不同的设计理念、渲染机制和开发模式。本文将详细探讨WPF与WinForm的本质区别,并通过示例进行说明。渲染机制W...

Win10/Win11效率神器再进化:微软发布PowerToys 0.90.0版本

IT之家4月1日消息,微软今天(4月1日)更新PowerToys,在最新发布的0.90.0版本中,修复多个BUG之外,引入多项功能更新,为Windows10、Windows...

一款非常漂亮的WPF管理系统(wpf架构及特性)

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!WPFManager项目介绍该项目是一款WPF开发的管理系统,数据库采用的MSSqlserv...

WPF 实现描点导航(wpf按钮的点击事件)

WPF实现描点导航控件名:NavScrollPanel作者:WPFDevelopersOrg-驚鏵原文链接[1]:https://github.com/WPFDevelopersOrg/WPF...

微软更新基于Win11的Validation OS 2504:增强 .NET与WPF

IT之家5月1日消息,科技媒体NeoWin今天(5月1日)发布博文,报道称微软公司更新基于Windows11的ValidationOS,增强支持.NET和WPF,并优...

WPF的技术架构与优势(wpf的前景)

WindowsPresentationFoundation(WPF)是一个现代化的用户界面框架,专为构建Windows应用程序而设计。它通过分层的技术架构和丰富的功能集,提供了全面的应用程...

取消回复欢迎 发表评论: