账号被锁住了,如何解锁?
问题现象
连接集群时报错“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。
您可以通过如下步骤修改参数:
- 登录GaussDB(DWS) 管理控制台。
- 在左侧导航树,单击“集群管理”。
- 在集群列表中找到所需要的集群,然后单击集群名称。
- 进入集群的“参数修改”页面,找到“failed_login_attempts”参数,修改其参数值,然后单击“保存”,确认无误后再单击“保存”。
设置账户被锁定后自动解锁的时间
账户被锁定后,可通过设置参数password_lock_time指定自动解锁的时间,当锁定时间超过password_lock_time设定的值时,账户将会被自行解锁。参数password_lock_time的整数部分表示天数,小数部分可以换算成时、分、秒。
您可以通过如下步骤修改参数:
- 登录GaussDB(DWS) 管理控制台。
- 在左侧导航树,单击“集群管理”。
- 在集群列表中找到所需要的集群,然后单击集群名称。
- 进入集群的“参数修改”页面,找到“password_lock_time”参数,修改其参数值,然后单击“保存”,确认无误后再单击“保存”。