首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【YashanDB 知识库】账号被锁,如何分析具体原因

【YashanDB 知识库】账号被锁,如何分析具体原因

作者头像
用户10349277
修改2025-02-21 11:46:21
修改2025-02-21 11:46:21
3820
举报

问题现象

客户刚开始使用 YashanDB 的时候,经常收到客户反馈账号被锁,但是不知道哪里触发了。

问题的风险及影响

客户环境为测试环境,影响测试业务的开展。

问题影响的版本

YashanDB 版本:23.1.3.101

问题发生原因

账号被锁一般有下面原因:

● 密码尝试次数过多:

用户在短时间内连续多次输入错误的密码,超过了数据库系统规定的阈值,系统会自动锁定该用户账户,以防止暴力破解。

● 账号过期:

如果用户的账号设置了有效期,并且已经超过有效期限,系统可能会自动锁定该账号。密码有效期到期后需要修改密码

● 管理员锁定:

管理员可以根据安全策略手动锁定用户账户,例如在发现异常登录行为、安全漏洞或出于合规要求时

在新老系统切换的时候,定时任务或批处理包含了错误的密码信息,导致反复尝试登录失败,导致用户被锁定。

解决方法及规避方式

使用管理员 yashan 账号登录服务器,解锁账户 (需要确保 yashan 在 YASDBA 用户组

代码语言:javascript
复制
yasql / as sysdba
ALTER USER username ACCOUNT UNLOCK;

问题分析和处理过程

确认账号情况

使用 yasdb /as dba 登录数据库系统,查看 DBA_USERS 表 ACCOUNT_STATUS/LOCK_DATE/EXPIRY_DATE/PROFILE 字段情况,发现账号是 LOCKED (TIMED) 的状态,PROFILE 为 DEFAULT,排除因为密码过期导致被锁的情况。

代码语言:javascript
复制
SQL> select * from dba_users where username = 'YASHAN';
 
USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE CREATED AUTHENTICATION_TYPE LAST_LOGIN PASSWORD_CHANGE_DATE DATABASE_MAINTAINED PROFILE
---------------------------------------------------------------- ------------ ---------------------------------------------------------------- --------------------------------- ------------------------------------------------ ------------------------------------------------ ---------------------------------------------------------------- ------------------------------------------------ ------------------- ------------------------------------------------ ------------------------------------------------ ------------------- ----------------------------------------------------------------
YASHAN 5 S:8C4FAB993F0F4264910276E6312DA76F97411977FD09F3E19B651802A867E LOCKED(TIMED) 2024-04-16 YASHAN1 2024-04-07 PASSWORD 2024-04-16 N DEFAULT
 
1 row fetched.
 
SQL>

其中默认 profile 密码错误 10 次会锁定账号,没有效期限制

检查链接日志。

在 YashanDB 产品安装过程中会自动创建监听日志文件 listener.log,该文件位于 $YASDB_DATA 目录下的 log/listener 文件夹中。

在日志中记录了包括时间戳、用户、连接状态、IP、端口等连接信息(成功或失败的连接均被记录),通过查看这些信息可以帮助用户快速分析连接来源

代码语言:javascript
复制
2024-04-02 02:25:36.894 protocal = TCP ip = 192.168.218.1 port = 63862 user = SYS status = SUCCESS
2024-04-02 02:41:10.245 protocal = TCP ip = 192.168.218.1 port = 63863 user = SYS status = ERROR
2024-04-02 02:41:10.252 protocal = TCP ip = 192.168.218.1 port = 64127 user = SYS status = ERROR
2024-04-02 02:41:10.257 protocal = TCP ip = 192.168.218.1 port = 64418 user = SYS status = SUCCESS

从客户的日志看,是一直有本地的 IP 发起链接失败。

确认原因并修改。

客户检查本地 dbeaver 的设置,修改为正确密码,并解锁账户之后,问题解决。

代码语言:javascript
复制
SQL> alter user YASHAN account unlock;
 
Succeed.
 
SQL> select * from dba_users where username = 'YASHAN';
 
USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE CREATED AUTHENTICATION_TYPE LAST_LOGIN PASSWORD_CHANGE_DATE DATABASE_MAINTAINED PROFILE
---------------------------------------------------------------- ------------ ---------------------------------------------------------------- --------------------------------- ------------------------------------------------ ------------------------------------------------ ---------------------------------------------------------------- ------------------------------------------------ ------------------- ------------------------------------------------ ------------------------------------------------ ------------------- ----------------------------------------------------------------
YASHAN 5 S:8C4FAB993F0F4264910276E6312DA76F97411977FD09F3E19B651802A867E OPEN 2024-04-16 YASHAN1 2024-04-07 PASSWORD 2024-04-16 N DEFAULT
 
1 row fetched.

经验总结

1、密码可以设置安全策略,在安全策略中指定密码有效期等。

2、$YASDB_DATA 目录下的 log/listener 文件夹中日志文件 listener.log,可以帮助用户快速分析连接来源,找到链接错误的 IP。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题现象
  • 问题的风险及影响
  • 问题影响的版本
  • 问题发生原因
  • 解决方法及规避方式
  • 问题分析和处理过程
    • 确认账号情况
    • 检查链接日志。
    • 确认原因并修改。
  • 经验总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档