
# 重置密码后再次登录仍提示用户被锁
#### 问题现象
某用户连接集群时提示账户被锁，重置用户密码后再次登录，仍提示用户被锁。
```
FATAL: The account has been locked.
```
#### 原因分析
DWS数据库默认情况下，在连续输入错误密码10次后会锁定该用户（允许输入的错误次数由GUC参数failed_login_attempts（默认值为10）控制，可以参见[设置尝试登录失败次数](https://support.huaweicloud.com/trouble-dws/dws_09_0030.html#ZH-CN_TOPIC_0000001092441723__zh-cn_topic_0000001081821913_section66821558401)登录DWS管理控制台进行修改）。
当用户重置密码后，重试还是被锁，说明在重置后，有其他用户或者应用又用错误的密码尝试连接了10次或failed_login_attempts的设置值，再次导致了用户被锁。
#### 处理方法
1. 使用系统管理员dbadmin用户连接数据库，执行以下SQL语句查看系统时间。 
   ```
   SELECT now();
   ```
   ![](https://support.huaweicloud.com/trouble-dws/figure/zh-cn_image_0000001436607833.png "点击放大")
   查询结果显示当前DWS默认显示的系统时间是UTC时间，即北京时间-8H。
   
   
2. 执行以下SQL语句查询客户端连接情况。其中， 
   - username请替换为实际被锁的用户名。
   
   - 时间段，请根据实际时间修改。例如要查北京时间当天上午9点到10点这个时间段的连接情况，需由北京时间转为UTC时间，即-8H，则UTC时间为当天上午1点到2点的时间段。
   
   
   ```
   SELECT * FROM pgxc_query_audit('2022-10-27 01:00:00','2022-10-27 02:00:00') where username='username';
   ```
   ![](https://support.huaweicloud.com/trouble-dws/figure/zh-cn_image_0000001436488669.png "点击放大")
   查询结果显示：IP地址为x.x.x.x的客户端一直使用错误的密码进行连接。
   
   
3. 根据实际业务情况选择以下对应的处理办法： 
   - 如果确认步骤2查询到的IP地址是某个作业，可以先停止该作业连接，再通过系统管理员dbadmin连接数据库后，使用以下SQL语句解锁该用户。然后调整该作业设置，使用正确的密码进行连接。
     ```
     ALTER USER username ACCOUNT UNLOCK;
     ```
     
   
   - 如果不确认该IP地址是哪个作业，可以先参见[设置尝试登录失败次数](https://support.huaweicloud.com/trouble-dws/dws_09_0030.html#ZH-CN_TOPIC_0000001092441723__zh-cn_topic_0000001081821913_section66821558401)将参数failed_login_attempts修改为0，然后使用以下SQL语句重置一个新密码，此时正在连接的其他作业即使再次输错10次密码也不会被锁定。
     ```
     ALTER USER username IDENTIFIED BY '{Password}';
     ```
     ![](https://support.huaweicloud.com/trouble-dws/public_sys-resources/notice_3.0-zh-cn.png)
     failed_login_attempts修改为0的方式仅为临时解决方案，为保证数据库安全，不建议failed_login_attempts设置为0。建议后续定位到对应作业后，尽快将作业的连接设置调整为正确密码，继续将failed_login_attempts设置为10。
     
   
   
   
   
