情况
Kingbase数据库修改密码后,重新连接失败
提示信息
致命错误: 用户 "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. 修改sys_hba.conf配置文件
D:\Program Files\Kingbase\ES\V8\data下修改sys_hba.conf配置文件
修改前
修改后
重新加载配置文件
网上查的是
修改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
实际我直接重新
sys_ctl start -D "D:\Program Files\Kingbase\ES\V8\data"
关于认证方法:
SCRAM-SHA-256口令认证:
方法"scram-sha-256"执行SCRAM-SHA-256认证。可防止密码在不可信的连接上被嗅探,并支持以密码散列的形式将密码存储在服务器上。属于安全的认证方法。低版本的jdbc驱动不支持此方法。
MD5口令认证:
方法"md5"使用自定义安全性较低的质询-响应机制。可以防止密码被嗅探,并避免以纯文本形式将密码存储在服务器上,但如果攻击者设法从服务器窃取密码哈希,则不提供保护。
如果在sys_hba.conf中使用md5认证方法,但数据库服务器上用户的密码是SCRAM加密的,那么数据库会自动选择基于SCRAM的认证方法。
Password口令认证:
方法"password"以明文形式发送密码,因此密码容易被嗅探获取。应尽量避免使用"password"认证方法。
如果必须使用"password"认证方法,应该结合SSL加密一起,这样"password"就可以安全的使用而不用担心密码被嗅探获取。
trust信任认证:
当使用"trust"信任认证时,任意可以连接到数据库服务器的人都可以无限制的访问数据库。
在系统层对进入数据库服务器的连接有足够保护、安全限制时,才可以使用这种方法。