KingbaseES V8R6集群运维案例之---修改system密码后无法登录数据库
案例说明:
KingbaseES V8R6集群环境,用户忘记system密码,现场运维人员通过免密登录数据库后,修改了system密码,但system仍无法登录数据库,执行sys_encpwd工具创建.encpwd文件后,也无法免密登录数据库。
适用版本:
KingbaseES V8R6
一、问题现象
1、配置免密后登录数据库修改system密码
prod=# alter user system password with '12345678ab' ;
ALTER ROLE
2、systenm登录数据库访问
如下图所示,通过.encpwd免密登录或指定密码登录,均无法登录数据库。
二、问题分析
1、查看.encpwd文件(记录用户加密口令,用于用户本地免密登录)
[kingbase@node101 ~]$ cat .encpwd
*:*:*:esrep:S2luZ2Jhc2VoYTExMA==
*:*:*:system:MTIzNDU2NzhhYg==
2、通过集群sys_encpwd工具重新创建.encpwd文件
Tips:
.encpwd中保存的密码和在数据库中修改的密码一致,仍然不能免密登录数据库。
3、查看数据库用户属性
如下图所示,竟然发现system用户中设置了密码有效期!!!
三、问题解决
1、通过alter user配置用户的密码有效期
Command: ALTER USER
Description: change a database role
Syntax:
ALTER USER role_specification [ WITH ] option [ ... ]
where option can be:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| ACCOUNT { UNLOCK | LOCK }
| REPLICATION | NOREPLICATION
| BYPASSRLS | NOBYPASSRLS
| CONNECTION LIMIT connlimit
| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
| VALID UNTIL 'timestamp'
2、配置用户密码有效期
1)调整用户密码有效期
test=# alter user system password '12345678ab' valid until '2100-01-01';
ALTER ROLE
test=# \du system
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
system | Superuser, Create role, Create DB, Replication, Bypass RLS+| {}
| Password valid until 2100-01-01 00:00:00+08 |
如下图所示,密码有效期调整到未来的时间:
2)用户登录
uploading-image-481560.png
---如上图所示,system用户已经可以通过.encpwd文件免密登录。
3)配置用户密码无期限
test=# alter user system password '12345678ab' valid until 'infinity';
ALTER ROLE
test=# \du system
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
system | Superuser, Create role, Create DB, Replication, Bypass RLS+| {}
| Password valid until infinity
查看用户属性:
test=# select * from sys_user where usename='system';
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconf
ig
---------+----------+-------------+----------+---------+--------------+----------+----------+--------
---
system | 10 | t | t | t | t | ******** | infinity |
(1 row)
test=# select * from sys_shadow where usename='system';
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls |
passwd
| valuntil | useconfig
---------+----------+-------------+----------+---------+--------------+------------------------------
-----------------------------------------------------------------------------------------------------
----+----------+-----------
system | 10 | t | t | t | t | SCRAM-SHA-256$4096:uNQhDJlR6H
rSPbCOfZsdzw==$TRBgKEBIZXnFl9JIhcw+uOBdPlSukaa0aMvGVYkqcX8=:N4q8VSA4RrGHmD82D2sVwYTAR6WqRkRdKx9J5wNu5
e8= | infinity |
(1 row)
---至此,system用户登录数据库正常。
四、总结
此次问题原因,是system用户密码被设定了一个密码期限导致,也许是早期用户的误操作。
对于KingbaseES V8R6集群中的数据库系统用户的密码,尽量不要使用手工修改,部分用户会用于集群管理,其密码存在数据库及集群配置文件,手工修改,容易遗漏,可以通过集群一键修改密码工具完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2022-04-26 KingbaseES V8R6C5B0023 sys_dump备份锁冲突故障测试
2022-04-26 KingbaseES R6集群归档备份故障分析解决案例