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集群中涉及到多个配置文件的修改,并且在应 ...
随机推荐
- JVM详解
1 JVM运行机制概述 JVM运行机制 类加载机制: 类加载过程由类加载器来完成,即由ClassLoader及其子类实现,有隐式加载和显式加载两种方式.隐式加载是指在使用new等方式创建对象时会隐式调 ...
- SpringBoot相关注解使用
@MapperScan注解和@Mapper @Mapper常用在相应的 *Mapper类上,但是每个类都使用相对麻烦,所以后来用@MapperScan替代 ,@MapperScan注解使用在启动类上. ...
- Java设计模式-组合模式Composite
介绍 组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示"整体-部分"的层次关系. 组合模式依据树形结构来组合对 ...
- 基于javaweb的个人音乐网站
一 .需求 ① 前台用户: 用户注册和登录以及完善个人资料: 添加好友功能(用户之间可通过发送好友申请添加好友,被添加人可以同意或拒绝好友申请): 下载歌曲功能(当用户点击下载按钮时,就能下载相对应的 ...
- Could not resolve type alias 'com.github.mybatis.helper.page.PageSqlInterceptor'.
报错信息 Could not resolve type alias 'com.github.mybatis.helper.page.PageSqlInterceptor'. Cause: java. ...
- 【图论#02】岛屿系列题(数量、周长、最大面积),flood fill算法的代码实现与优化
岛屿数量 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成. 此外,你可以假设该网 ...
- 矩池云产品最新动态 All in One
AI/ML 的不断革新,让我们看到了更多激动人心的应用方向,也迸发了更多的训练&应用场景. 在用户的反馈和建议下,矩池云持续丰富和优化在 AI+Science 链路上的相关产品,为了帮助研究人 ...
- go语言实现扫雷
源码如下 package main import ( "archive/zip" "bytes" "encoding/base64" &qu ...
- C++基本知识梳理
一.命名空间 概念:命名空间是新定义的一个作用域,里面可以放函数,变量,定义类等,主要用来防止命名冲突. 实现:namespace关键字 命名空间名字{ 命名空间成员 } 注意点: 1.命名空间可以嵌 ...
- Java 抽象类 练习
1 package com.bytezreo.template; 2 3 import java.util.Calendar; 4 import java.util.Scanner; 5 6 /** ...