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限制客户端访问数据库的更多相关文章

  1. KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例

    案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...

  2. KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析

    ​ 案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...

  3. KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例

    案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...

  4. KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed

    案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...

  5. KingbaseES V8R3集群运维案例之---用户自定义表空间管理

    ​案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...

  6. kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份

    ​ 案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...

  7. KingbaseES V8R6集群外部备份案例

    案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server. 一主一备+外部备份 此场景为主备双机常 ...

  8. KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障

    案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...

  9. KingbaseES V8R6集群维护案例之---停用集群node_export进程

    案例说明: 在KingbaseES V8R6集群启动时,会启动node_exporter进程,此进程主要用于向kmonitor监控服务输出节点状态信息.在系统安全漏洞扫描中,提示出现以下安全漏洞: 对 ...

  10. KingbaseES V8R6集群维护之--修改数据库服务端口案例

    ​ 案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...

随机推荐

  1. 【Lua】ToLua逻辑热更新

    1 前言 ​ Lua基础语法 中系统介绍了 Lua 的语法体系,xLua逻辑热更新 中介绍了 xLua 的应用,本文将进一步介绍 Unity3D 中基于 ToLua 实现逻辑热更新. ​ 逻辑热更新是 ...

  2. 微信小程序云开发项目-个人待办事项-01介绍

    项目简介 这个小程序项目做的是个人待办事项管理小程序,也就是大家常见的todo类程序.做这个程序主要是为了演示如何快速得学习到微信小程序一些基本得组件.路由.云函数开发技巧.有需要的朋友可以拿去自己改 ...

  3. webrtc 的理解

    常规视频的传输包括以下几个步骤:采集,编码,推流,转码,分发,拉流,解码和渲染 在一个实时的音视频系统架构里,上面的每个环节都会有一定程度的优化空间. 以下内容摘自:rtmp直播和webrtc直播对比 ...

  4. SSH不对称密钥自动登入服务器

    SSH不对称密钥自动登入服务器 1.先在自己的电脑上创建密钥对 ssh-keygen -t rsa Windows下生成SSH密钥 $ ssh-keygen -t rsa -C "youre ...

  5. Jmeter Jsonpath 语法你了解多少?

  6. 各大OA调试账户默认账户口令

    1.今目标地址:http://web.jingoal.com/mgt/用户名:admin@8216261密码:1a2s3d4f5g2.IBOS博思协同地址:http://demo.ibos.com.c ...

  7. 工具 --- IL指令集解释

    引言 汇总一下所有的 .NET IL 指令,以及它们的名称.操作码值.堆栈转换行为和描述. 作为反编译IL代码时的查询字典. IL 指令集列表 以下内容来自微软官方文档,通过百度翻译API翻译为中文. ...

  8. [学习笔记]在CentOS7中用Docker方式安装Jenkins

    @ 目录 原理: 创建Docker网桥网络 安装DinD 创建镜像 构建镜像 运行容器 原理: Docker in Docker (以下简称 DinD)可以在 Container 中直接运行一个 Do ...

  9. vid = two 切开 分开 - 两个眼睛 还有看的含义 - 词根

    vid = two 切开 分开 - 两个眼睛 还有看的含义 - 词根 vi = wo acs 构词

  10. 基于python的固定间隔时间执行实例解析

    一 概念 datetime的用法如下: import datetime. # 打印当前时间 time1 = datetime.datetime.now() print(time1) # 打印按指定格式 ...