【YashanDB知识库】账号被锁,如何分析具体原因
问题现象
客户刚开始使用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知识库】账号被锁,如何分析具体原因的更多相关文章
- informix 数据库锁表分析和解决方法
一.前言 在联机事务处理(OLTP)的数据库应用系统中,多用户.多任务的并发性是系统最重要的技术指标之一.为了提高并发性,目前大部分RDBMS都采用加锁技术.然而由于现实环境的复杂性,使用加锁技术又不 ...
- InnoDB锁机制分析
InnoDB锁机制常常困扰大家,不同的条件下往往表现出不同的锁竞争,在实际工作中经常要分析各种锁超时.死锁的问题.本文通过不同条件下的实验,利用InnoDB系统给出的各种信息,分析了锁的工作机制.通过 ...
- [转载] 数据库分析手记 —— InnoDB锁机制分析
作者:倪煜 InnoDB锁机制常常困扰大家,不同的条件下往往表现出不同的锁竞争,在实际工作中经常要分析各种锁超时.死锁的问题.本文通过不同条件下的实验,利用InnoDB系统给出的各种信息,分析了锁的工 ...
- SQL Server中CURD语句的锁流程分析
我只在数据库选项已开启“行版本控制的已提交读”(READ_COMMITTED_SNAPSHOT为ON)中进行了观察. 因此只适用于这种环境的数据库. 该类数据库支持四种不同事务隔离级别,下面分别观察数 ...
- MySQL锁等待分析【2】
MySQL锁等待分析[1]中对锁等待的分析是一步一步来的.虽然最后是分析出来了,可是用时是比较长的:理清各个表之间的关系后,得到如下SQL语句,方便以后使用 select block_trx.trx_ ...
- linux RCU锁机制分析
openVswitch(OVS)源代码之linux RCU锁机制分析 分类: linux内核 | 标签: 云计算,openVswitch,linux内核,RCU锁机制 | 作者: yuzhih ...
- DB2 锁问题分析与解释
DB2 锁问题分析与解释 DB2 应用中常常会遇到锁超时与死锁现象,那么这样的现象产生的原因是什么呢.本文以试验的形式模拟锁等待.锁超时.死锁现象.并给出这些现象的根本原因. 试验环境: DB2 v9 ...
- Java多线程——线程八锁案例分析
Java多线程——线程八锁案例分析 摘要:本文主要学习了多线程并发中的一些案例. 部分内容来自以下博客: https://blog.csdn.net/dyt443733328/article/deta ...
- windows下本地安装oracle忘记密码,账号被锁咋办
忘记密码咋办: 进入cmd,输入set ORACLE_SID=ymxg (ORACLE_SID的值为你想登录的oracle实例的SID) 然后输入:sqlplus / as sysdba 最后输入: ...
- 图解Janusgraph系列-并发安全:锁机制(本地锁+分布式锁)分析
图解Janusgraph系列-并发安全:锁机制(本地锁+分布式锁)分析 大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据 ...
随机推荐
- 常回家看看之off_by_null(堆篇)
上次介绍了堆里面的off_by_one,那么这个off_by_null和它有神马区别呢,哎,别看名字挺像,它俩无论是在栈里面还是堆里面都有很大区别的. off_by_one,这个我们知道可以通过溢出控 ...
- 一套基于 Ant Design 和 Blazor 的开源企业级组件库
前言 今天大姚给大家分享一套基于Ant Design和Blazor的开源(MIT License).免费的企业级组件库(喜欢Ant Design风格的同学推荐使用):Ant Design Blazor ...
- springboot项目分层
springboot项目分层 一般的项目模块中都有DAO.Entity.Service.Controller层. Entity层:实体层 数据库在项目中的类 Entity层是实体层,也就是所谓的mod ...
- 如何在 XAMPP 中使用 不同的 PHP 版本?
你有没有碰到这种情况,你工作的项目需要的是PHP8,而你自己的项目需要的是PHP7,而你又特别钟爱于XAMPP,奈何它却不能自由切换PHP版本,下面就讲下本人在用的方法将PHP7更新到PHP8,可以通 ...
- oeasy教您玩转python - 9 - # 换行字符
换行字符 回忆上次内容 数制可以转化 bin(n)可以把数字转化为 2进制 hex(n)可以把数字转化为 16进制 int(n)可以把数字转化为 10进制 编码和解码可以转化 encode 编码 ...
- .Net Core MemoryCache 缓存
缓存是一种开发时常用的性能优化手段,.Net自带内存缓存(MemoryCache)可以很方便的使用,下面列出简单用法. 首先通过NuGet添加 Microsoft.Extensions.Hosting ...
- Less预处理器的使用
练习页面: <body> <div class="div1"> <div class="div2"></div> ...
- Oracle 删除大量表记录操作总结
By:授客 QQ:1033553122 删除表数据操作 清空所有表记录 TRUNCATE TABLE your_table_name; 或者批量删除满足条件的表记录 BEGIN LOOP DELETE ...
- CCF 任务调度
样例的示意图 查了一圈,然后很烦,不想学习方法,好卡.查了一些题解,发现都是10分,30分先搁置的博客,最后翻到 堪称官方标称的思路 (CCF题目pat题目各大poj/hdoj好戏那个都没有标程,这里 ...
- 嵌入式开发SQLite 快速掌握
SQLite是什么 SQLite又称(RDBMS)它 是本地数据库,可以用在手机,嵌入式设备的精简数据库和大名的mysql 一样的数据库存,只是可以理解为它是精简版,事务处理.表连接.索引.触发器等都 ...