HGDB V9.0.5 .pgpass 免密登录提示 IsEncryptNon-base64 encoding 警告处理

文章目录

环境

系统平台:N/A

版本:9.0.5

症状

使用 .pgpass 免密登录时,psql 在启动阶段输出告警:

复制代码
$(客户端安装用户) psql
WARNING:IsEncryptNon-base64 encoding.
psql (14.20)
hgdb-client-V9.0.5
输入 "help" 来获取帮助信息.

highgo=#

该告警不阻断登录,也不影响后续 SQL 执行,但每次连接都会输出。检查 .pgpass 可确认其中密码为明文:

复制代码
$ cat .pgpass
#hostname:port:database:username:password
localhost:5866:*:highgo:password

问题原因

HGDB V9.0.5 对 .pgpass 中 password 字段做 base64 编码校验。当该字段以明文存放时,客户端在读取阶段判定其未按 base64 编码,输出 WARNING:IsEncryptNon-base64 encoding.。

该机制的用途是避免口令以可读明文出现在文件中,增强密码安全性。

解决方案

使用 HGDB 客户端自带的 pg_pgpass 工具对 .pgpass 文件进行编码处理。该工具位于数据库安装目录的bin/中。

pg_pgpass 原地修改 .pgpass,且会将文件中所有明文密码一并加密,执行前先备份:

复制代码
$ cp .pgpass .pgpass.bak

执行加密:

复制代码
$ pg_pgpass .pgpass
#hostname:port:database:username:password
WARNING:IsEncryptNon-base64 encoding.
localhost:5866:*:highgo:SbGDA8mH3xxx+XqZ9ssyI8lgFxxeAY9b+YPACM3ilLKgTM5xx10XKuWSixxKlxx3CPfdyKYGIwDX2/9Vw1xxOHpl5xxXyfgqcqWPmUTc=

确认文件内容已变更:

复制代码
$ cat .pgpass
#hostname:port:database:username:password
localhost:5866:*:highgo:SbGDA8mH3xxx+XqZ9ssyI8lgFxxeAY9b+YPACM3ilLKgTM5xx10XKuWSixxKlxx3CPfdyKYGIwDX2/9Vw1xxOHpl5xxXyfgqcqWPmUTc=

前四列 hostname:port:database:username 保持不变,仅 password 字段被替换为编码后的字符串。

验证

重新执行 psql,告警消失且无需输入密码即可登录:

复制代码
$ psql
psql (14.20)
hgdb-client-V9.0.5
输入 "help" 来获取帮助信息.

highgo=# \q

注意事项

pg_pgpass 对文件内所有条目统一处理。多实例、多用户共用的 .pgpass 会一并变更,执行前需确认保留备份以便回退。

相关推荐
龙腾AI白云2 小时前
大模型检索增强生成(RAG)的技术原理与架构设计
数据库·python·机器学习·知识图谱
KaiwuDB2 小时前
KaiwuDB 运维实战06:数据库备份与恢复:从理论到实战
运维·数据库·时序数据库·kaiwudb
数字新视界3 小时前
空调控制器AIRC800的智能化管理与应用实践
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
学IT的周星星3 小时前
LangGraph:用「流程图」的方式编排 Agent
数据库·人工智能·大模型·llm·流程图·agent
吃一碗粉只付一碗钱4 小时前
10-令牌里的用户主键不要明文
服务器·数据库·sql·sqlserver·c#
蹄蹄4 小时前
从“一次性检测“到“年度服务“:检测机构收入结构变了,合同和应收账款也要跟着变
大数据·数据库·人工智能
福大大架构师每日一题4 小时前
redis 8.10.3正式发布:聚焦集群总线超大消息传播场景的安全修复,8.10.3 Latest更新解读
数据库·redis·安全
TDengine (老段)5 小时前
TDengine IDMP 十大实用功能(3)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据