ITPub博客

首页 > 数据库 > Oracle > 【YashanDB知识库】账号被锁,如何分析具体原因

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

原创 Oracle 作者:崖山数据库系统YashanDB 时间:2024-07-31 09:54:18 0 删除 编辑

问题现象

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

问题的风险及影响

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

问题影响的版本

YashanDB版本:23.1.3.101

问题发生原因

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

● 密码尝试次数过多:

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

● 账号过期:

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

● 管理员锁定:

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

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

解决方法及规避方式

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

yasql / as sysdba
ALTER 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 = 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的设置,修改为正确密码,并解锁账户之后,问题解决。

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。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3023803/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639747