KingbaseES V8R6集群运维案例之---sys_hba.conf限制客户端访问数据库
KingbaseES V8R6集群运维案例之---sys_hba.conf限制客户端访问数据库
案例说明:
- 客户端认证是由一个配置文件(通常名为sys_hba.conf并被存放在数据库集簇目录中)控制(HBA表示基于主机的认证)。
- 在initdb初始化数据目录时,它会安装一个默认的sys_hba.conf文件。
- sys_hba.conf文件的常用格式是一组记录,每行一条。空白行将被忽略, #注释字符后面的任何文本也被忽略。记录不能跨行。
- 每条记录指定一种连接类型、一个客户端 IP 地址范围(如果和连接类型相关)、一个数据库名、一个用户名
- 以及对匹配这些参数的连接使用的认证方法。第一条匹配连接类型、客户端地址、连接请求的数据库和用户名的记录将被用于执行认证。
- 如果选择了一条记录而且认证失败,那么将不再考虑后面的记录。如果没有匹配的记录,那么访问将被拒绝。
适用版本:
KingbaseES V8R6
集群节点信息:
[kingbase@node101 bin]$ cat /etc/hosts
192.168.1.101 node101
192.168.1.102 node102
192.168.1.103 node103
ID | Name | Role | Status | Upstream | repmgrd | PID | Paused? | Upstream last seen
----+-------+---------+-----------+----------+---------+-------+---------+--------------------
1 | node1 | primary | * running | | running | 25483 | no | n/a
2 | node2 | standby | running | node1 | running | 21974 | no | 1 second(s) ago
案例一:
拒绝客户端本地socket和127.0.0.1连接登录,只能通过本机ip以TCP/IP连接方式登录:
1)sys_hba.conf配置
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all reject
# IPv4 local connections:
host all all 127.0.0.1/32 reject
host all all 192.168.1.101/32 scram-sha-256
host all all 0.0.0.0/0 scram-sha-256
2)数据库服务reload后登录
如下图所示,本地socket和127.0.0.1连接被拒绝,通过本地ip连接登录成功。

案例二:
只允许主备节点访问数据库服务:
1)sys_hba.conf配置
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
host all all 192.168.1.101/32 scram-sha-256
host all all 192.168.1.102/32 scram-sha-256
#host all all 0.0.0.0/0 scram-sha-256
---如上所示:指定ip(192.168.1.101/32,192.168.1.102/32)可以访问本地数据库服务,注释(
0.0.0.0/0)记录,默认将拒绝其他客户端访问本地数据库服务。
2)数据库服务reload后登录
如下图所示,本地ip访问和远程客户端访问数据库成功:

案例三:
拒绝所有的客户端通过TCP/IP连接数据库访问:
1)sys_hba.conf配置
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
#host all all 0.0.0.0/0 scram-sha-256
host all all 192.168.1.0/24 scram-sha-256
host all all 0.0.0.0/0 reject
---如上所示,增加(0.0.0.0/0)的reject条目。
虽然在拒绝所有客户端访问前,有允许访问的客户端ip。
2)数据库服务reload后登录
如下图所示,本地socket连接登录成功,TCP/IP连接访问失败:(包括在sys_hba.conf中允许访问的客户端)

远程节点访问:(192.168.1.102/24)

案例四:
PostgreSQL pg_hba.conf下配置(0.0.0.0/0)reject:
1)pg_hba.conf配置
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.1.101/32 trust
host all all 0.0.0.0/0 reject
#host all all 0.0.0.0/0 trust
2)数据库服务reload后登录
如下所示,本地ip连接访问数据库成功,远程节点访问数据库被拒绝(pg_hba.conf中没有远程客户端对应的条目)。

总结:
1、可以通过sys_hba.conf建立客户端访问数据库服务的白名单。
2、在sys_hba.conf中的条目,从上到下按顺序匹配,如果有匹配记录,按照匹配记录处理;如果没有匹配记录,在没有配置( 0.0.0.0/0 )允许所有客户端时,则默认拒绝访问数据库服务。
3、在sys_hba.conf中不支持(0.0.0.0/0)reject的配置项,将会拒绝所有的tcp/ip的连接,包括已经匹配的条目。
4、在PostgreSQL下的pg_hba.conf支持(0.0.0.0/0)reject的配置项,可以将此配置放置到文件最后,但是默认就是拒绝所有,此配置可以不用。
KingbaseES V8R6集群运维案例之---sys_hba.conf限制客户端访问数据库的更多相关文章
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例
案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...
- KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed
案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份
案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...
- KingbaseES V8R6集群外部备份案例
案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server. 一主一备+外部备份 此场景为主备双机常 ...
- KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障
案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...
- KingbaseES V8R6集群维护案例之---停用集群node_export进程
案例说明: 在KingbaseES V8R6集群启动时,会启动node_exporter进程,此进程主要用于向kmonitor监控服务输出节点状态信息.在系统安全漏洞扫描中,提示出现以下安全漏洞: 对 ...
- KingbaseES V8R6集群维护之--修改数据库服务端口案例
案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...
随机推荐
- DOM和BOM的区别
DOM和BOM的区别 在浏览器中运行的JavaScript可以认为由三部分组成:ECMAScript描述了该语言的语法和基本对象,DOM文档对象模型描述了处理网页内容的方法和接口,BOM浏览器对象模型 ...
- Eclipse文本编码格式修改为UTF-8 的方法
整理自网络,亲测可用,记录一下,方便下次查. 一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式. e ...
- Oracle 表压缩(Table Compression)技术介绍
Oracle 表压缩(Table Compression)介绍 1.官方文档说法: As your database grows in size, consider using table compr ...
- 无 dmp 文件的情况下使用 windbg
项目线上出现了闪退问题,查看日志发现是 sentry 模块出问题了 因为用户电脑上没有 pdb 文件,所以无法加载具体函数的调用位置,只能手动去计算 具体步骤是:在 windbg.exe 中加载 se ...
- 什么是数据同步利器DataX,如何使用?
转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南 今天给大家分享一个阿里开源的数据同步工具DataX,在Github拥有14.8k的star,非常受欢迎,官网 ...
- DataGear 自定义数据可视化图表
DataGear内置了很多常用的图表(折线图.柱状图.饼图.散点图.雷达图.地图等等),能满足大部分数据可视化需求,当内置图表无法满足时,则可以通过自定义图表或插件的方式,实现特定业务的数据可视化需求 ...
- centos下配置修改hosts文件以及生效命令详解
linux服务器hosts文件配置 hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在"/etc"目录下,文件名为"hosts& ...
- Excel去除表格密码保护
表格受密码保护时,我们修改数据Excel弹出"您试图更改的单元格或图表受保护,因而是只读的.若要修改受保护单元格或图表,请先使用'撤消工作表保护'命令(在'审阅'选项卡的'更改'组中)来取消 ...
- C++中OpenCV、Armadillo矩阵数据格式的转换方式
本文介绍在C++语言中,矩阵库Armadillo的mat.vec格式数据与计算机视觉库OpenCV的Mat格式数据相互转换的方法. 在C++语言的矩阵库Armadillo与计算机视觉库Open ...
- kubernetes 1.27.1最新版集群部署
kubernetes 1.27.1 最新版集群部署国内环境 官方安装部署文档:https://kubernetes.io/zh-cn/docs/setup/production-environment ...