写点什么

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

作者:YashanDB
  • 2024-07-31
    广东
  • 本文字数:2074 字

    阅读完需:约 7 分钟

问题现象

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

问题的风险及影响

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

问题影响的版本

YashanDB 版本:23.1.3.101

问题发生原因

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


● 密码尝试次数过多:


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


● 账号过期:


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


● 管理员锁定:


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


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

解决方法及规避方式

使用管理员 yashan 账号登录服务器,解锁账户(需要确保 yashan 在 YASDBA 用户组,参考操作系统身份认证配置 | YashanDB Doc):


yasql / as sysdbaALTER USER username ACCOUNT UNLOCK;
复制代码

问题分析和处理过程

确认账号情况

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


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 Doc

检查链接日志。

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


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


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


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

确认原因并修改。

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


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。

用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】账号被锁,如何分析具体原因_yashandb_YashanDB_InfoQ写作社区