解决金仓数据库KingbaseES连接Windows 平台异常的问题

在Windows环境下,使用KingbaseES数据库时可能遇到用户认证失败的问题,原因为系统不支持scram-sha-256或md5认证。解决方法是修改sys_hba.conf配置文件,将认证方法改为password或trust,然后重新加载或重启数据库。应注意SCRAM-SHA-256和MD5的安全性优于明文password认证,而trust认证应在严格控制网络访问时使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

应用连接Windows平台的KingbaseES 数据库,报错“com.kingbase8.util.KSQLException: 致命错误: 用户"system" Password 认证失败(kbjdbc:autodetected server-encoding to be GB2312, if the message is not readable, please check database logs and/or host,port,dbname,user,password,pg_hba.conf)”

适用于:

在Windows系统部署的任意版本KingbaseES数据库。

问题现象:

Windows系统使用KingbaseES数据库Kstudio客户端工具、KingbaseES JDBC驱动、KingbaseES Ndp驱动连接KingbaseES Server提示异常,异常信息如下。

致命错误: 用户"system" Password 认证失败(kbjdbc:autodetected server-encoding to be GB2312, if the message is not readable, please check database logs and/or host,port,dbname,user,password,pg_hba.conf)

原因:

在Windows系统部署了KingbaseES数据库服务端,但是由于widnows系统不支持连接使用基于scram-sha-256/md5认证方法,导致连接出现异常。

注意:KingbaseES数据库默认连接使用认证方法是scram-sha-256。

解决方法:

  1. 检查KingbaseES数据库sys_hba.conf配置文件,如果认证方法(METHOD列的值)是md5/scram-sha-256,修改认证方法(METHOD列的值)为password/trust。
  2. 修改KingbaseES数据库sys_hba.conf配置文件连接认证方法后,重新加载下配置文件,然后再次尝试连接。
# 使修改后的sys_hba.conf配置文件生效方法
# 1 ksql登录数据库执行以下命令
select sys_reload_conf();
# 2 使用sys_ctl reload命令
sys_ctl -D data路径 reload
# 3 使用sys_ctl restart命令重启数据库
sys_ctl -D data路径 restart

关于认证方法:

  1. SCRAM-SHA-256口令认证:
方法"scram-sha-256"执行SCRAM-SHA-256认证。可防止密码在不可信的连接上被嗅探,并支持以密码散列的形式将密码存储在服务器上。属于安全的认证方法。低版本的jdbc驱动不支持此方法。
  1. MD5口令认证:
方法"md5"使用自定义安全性较低的质询-响应机制。可以防止密码被嗅探,并避免以纯文本形式将密码存储在服务器上,但如果攻击者设法从服务器窃取密码哈希,则不提供保护。
如果在sys_hba.conf中使用md5认证方法,但数据库服务器上用户的密码是SCRAM加密的,那么数据库会自动选择基于SCRAM的认证方法。
  1. Password口令认证:
方法"password"以明文形式发送密码,因此密码容易被嗅探获取。应尽量避免使用"password"认证方法。
如果必须使用"password"认证方法,应该结合SSL加密一起,这样"password"就可以安全的使用而不用担心密码被嗅探获取。
  1. trust信任认证:
当使用"trust"信任认证时,任意可以连接到数据库服务器的人都可以无限制的访问数据库。
在系统层对进入数据库服务器的连接有足够保护、安全限制时,才可以使用这种方法。

更多信息,参见https://help.kingbase.com.cn/v8/index.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值