问题现象

客户刚开始使用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。

【YashanDB知识库】账号被锁,如何分析具体原因的更多相关文章

  1. informix 数据库锁表分析和解决方法

    一.前言 在联机事务处理(OLTP)的数据库应用系统中,多用户.多任务的并发性是系统最重要的技术指标之一.为了提高并发性,目前大部分RDBMS都采用加锁技术.然而由于现实环境的复杂性,使用加锁技术又不 ...

  2. InnoDB锁机制分析

    InnoDB锁机制常常困扰大家,不同的条件下往往表现出不同的锁竞争,在实际工作中经常要分析各种锁超时.死锁的问题.本文通过不同条件下的实验,利用InnoDB系统给出的各种信息,分析了锁的工作机制.通过 ...

  3. [转载] 数据库分析手记 —— InnoDB锁机制分析

    作者:倪煜 InnoDB锁机制常常困扰大家,不同的条件下往往表现出不同的锁竞争,在实际工作中经常要分析各种锁超时.死锁的问题.本文通过不同条件下的实验,利用InnoDB系统给出的各种信息,分析了锁的工 ...

  4. SQL Server中CURD语句的锁流程分析

    我只在数据库选项已开启“行版本控制的已提交读”(READ_COMMITTED_SNAPSHOT为ON)中进行了观察. 因此只适用于这种环境的数据库. 该类数据库支持四种不同事务隔离级别,下面分别观察数 ...

  5. MySQL锁等待分析【2】

    MySQL锁等待分析[1]中对锁等待的分析是一步一步来的.虽然最后是分析出来了,可是用时是比较长的:理清各个表之间的关系后,得到如下SQL语句,方便以后使用 select block_trx.trx_ ...

  6. linux RCU锁机制分析

    openVswitch(OVS)源代码之linux RCU锁机制分析 分类: linux内核  |  标签: 云计算,openVswitch,linux内核,RCU锁机制  |  作者: yuzhih ...

  7. DB2 锁问题分析与解释

    DB2 锁问题分析与解释 DB2 应用中常常会遇到锁超时与死锁现象,那么这样的现象产生的原因是什么呢.本文以试验的形式模拟锁等待.锁超时.死锁现象.并给出这些现象的根本原因. 试验环境: DB2 v9 ...

  8. Java多线程——线程八锁案例分析

    Java多线程——线程八锁案例分析 摘要:本文主要学习了多线程并发中的一些案例. 部分内容来自以下博客: https://blog.csdn.net/dyt443733328/article/deta ...

  9. windows下本地安装oracle忘记密码,账号被锁咋办

    忘记密码咋办: 进入cmd,输入set ORACLE_SID=ymxg  (ORACLE_SID的值为你想登录的oracle实例的SID) 然后输入:sqlplus / as sysdba 最后输入: ...

  10. 图解Janusgraph系列-并发安全:锁机制(本地锁+分布式锁)分析

    图解Janusgraph系列-并发安全:锁机制(本地锁+分布式锁)分析 大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据 ...

随机推荐

  1. position的值, relative和absolute分别是相对于谁进行定位的?

    relative:  相对定位,相对于自己本身在正常文档流中的位置进行定位 相对它原来的位置,在走100px.原来在标准流中的位置继续占有. absolute: 生成绝对定位,相对于最近一级定位不为s ...

  2. VUE商城项目 - 项目优化上线 - 手稿

  3. yb课堂之高并发项目必备利器之分布式缓存和本地缓存 《十九》

    什么是缓存? 程序经常要调用的对象存储在内存中,方便其使用时可以快速调用,不必去数据库或者其他持久化设备中查询,主要就是提高性能 DNS.前端缓存.代理服务器缓存Nginx.应用程序缓存(本地缓存.分 ...

  4. [oeasy]python0004_游乐场_和python一起玩耍_python解释器_数学运算

    和python玩耍 Python 回忆 上次 了解shell环境中的命令 命令 作用 whoami 显示当前用户名 pwd 显示当前文件夹 ls 列出当前文件夹下的内容 python3 仿佛进入大于号 ...

  5. oeasy教您玩转vim - 36 - # 插入字符

    ​ 插入字符 回忆上节课内容 正则表达式 行头行尾 ^ 意味着行开头 $ 意味着行结尾 任意字符 . 代表任意字符 [a-z] 代表任意小写字母 字符数量 * 代表 0 到任意多个前字符 + 代表 1 ...

  6. 阶乘-n!_C语言实现

    n! // Code file created by C Code Develop #include "stdio.h" #include "stdlib.h" ...

  7. Vue 中引用第三方js总结

    vue中引用第三方js总结 By:授客 QQ:1033553122 实践环境 win10 Vue 2.9.6 本文以引用jsmind为例,讲解怎么在vue中引用第三方js类库 基础示例 1.把下载好的 ...

  8. 分享一个idea的文档汉化插件

    展示效果: 如何获取:

  9. mysql索引失效的情况七字口诀:“模型数空运最快”

    mysql索引失效的情况 七字口诀:"模型数空运最快" 模:使用like进行模糊查询的时候,以百分号%开头的,索引就会失效. 型:代表数据类型,数据类型错误了,索引也会失效. 数: ...

  10. CentOS 7 下将 jar 包注册为服务

    前提条件 因为 jar 包启动需要用到 jdk,所以服务器上必须要安装jdk或者jre,这方面的教程网上有非常多,可以去百度一下 创建文件 创建website.service文件, 内容如下: [ro ...