更新时间:2024-07-01 GMT+08:00

账号被锁住了,如何解锁?

问题现象

连接集群时报错“The account has been locked.”。

原因分析

在连接集群中的数据库时,如果连续输错密码的次数过多,错误次数(输入密码错误的次数由GUC参数failed_login_attempts控制,默认值为10次)达到上限时,会导致账号被锁。

账号被锁的原因可以通过查看审计日志进行定位,详见重置密码后再次登录仍提示用户被锁

管理员用户(默认为dbadmin)解锁方法

您可以登录GaussDB(DWS) 管理控制台重置管理员密码,重置密码后账号即可自动解锁。在GaussDB(DWS) 管理控制台,进入“集群管理”页面,找到所需要的集群,然后单击“更多 > 重置密码”。

数据库普通用户解锁方法

使用管理员用户(默认为dbadmin)连接数据库,然后执行以下命令进行解锁,其中user_name请替换为需要解锁的用户名:

1
2
gsql -d gaussdb -p 8000 -U dbadmin -W 密码 -h 集群IP
ALTER USER user_name ACCOUNT UNLOCK;

设置尝试登录失败次数

输错密码的次数上限可以在集群的“参数修改”页面通过参数failed_login_attempts进行设置,当failed_login_attempts配置为0时表示不限制密码输入错误的次数,为保证数据库安全,不推荐设置为0。

您可以通过如下步骤修改参数:

  1. 登录GaussDB(DWS) 管理控制台。
  2. 在左侧导航树,单击“集群管理”。
  3. 在集群列表中找到所需要的集群,然后单击集群名称。
  4. 进入集群的“参数修改”页面,找到“failed_login_attempts”参数,修改其参数值,然后单击“保存”,确认无误后再单击“保存”

设置账户被锁定后自动解锁的时间

账户被锁定后,可通过设置参数password_lock_time指定自动解锁的时间,当锁定时间超过password_lock_time设定的值时,账户将会被自行解锁。参数password_lock_time的整数部分表示天数,小数部分可以换算成时、分、秒。

您可以通过如下步骤修改参数:

  1. 登录GaussDB(DWS) 管理控制台。
  2. 在左侧导航树,单击“集群管理”。
  3. 在集群列表中找到所需要的集群,然后单击集群名称。
  4. 进入集群的“参数修改”页面,找到“password_lock_time”参数,修改其参数值,然后单击“保存”,确认无误后再单击“保存”