KingBase 下的 sys_hba.conf 详解

        客户端访问KingbaseES数据库,需要建立身份的认证,sys_hba.conf相当于认证的黑白名单,可以通过配置sys_hba.conf允许或拒绝客户端对数据库服务器的访问。

sys_hba.conf原理:

  • 客户端认证是由一个配置文件(通常名为sys_hba.conf并被存放在数据库集簇目录中)控制(HBA表示基于主机的认证)。
  • 在initdb初始化数据目录时,它会安装一个默认的sys_hba.conf文件。
  • sys_hba.conf文件的常用格式是一组记录,每行一条。空白行将被忽略, #注释字符后面的任何文本也被忽略。记录不能跨行。
  • 每条记录指定一种连接类型、一个客户端 IP 地址范围(如果和连接类型相关)、一个数据库名、一个用户名
  • 以及对匹配这些参数的连接使用的认证方法。第一条匹配连接类型、客户端地址、连接请求的数据库和用户名的记录将被用于执行认证。
  • 如果选择了一条记录而且认证失败,那么将不再考虑后面的记录。如果没有匹配的记录,那么访问将被拒绝。

案例一:
拒绝客户端本地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             10.8.3.20/24             scram-sha-256
host    all             all             0.0.0.0/0                scram-sha-256

2)数据库服务reload后登录
如下所示,本地socket和127.0.0.1连接被拒绝,通过本地ip连接登录成功。

[kingbase@node1 bin]$ ./ksql -h 10.8.3.20 -U system test
ksql (V8.0)
Type "help" for help.


[kingbase@node1 bin]$ ./ksql -h 127.0.0.1 -U system test
ksql: error: could not connect to server: FATAL:  no sys_hba.conf entry for host "127.0.0.1", user "system", database "test", SSL off

[kingbase@node1 bin]$ ./ksql -U system test
ksql: error: could not connect to server: FATAL:  no sys_hba.conf entry for host "[local]", user "system", database "test", SS
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mindfulness code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值