【Oracle】数据库账号频繁被锁问题解决

news2025/1/4 17:27:04

文中使用的Oracle版本为11g。

今天在测试环境中遇到了一个问题,如下图:

在这里插入图片描述

所有的数据库客户端访问Oracle11g都出现了上面的提示“ORA-28000: the account is locked”,一开始其实并不知道是什么原因引起的问题,到后面才发现是登录错误过多导致的账号被锁定了,下面讲一下解决步骤。

由于测试环境的Oracle11g是docker镜像部署的,因此在客户端都无法登录的情况下(无论default,还是sysdba)只能到服务器的容器内部进行操作。

[root@node206 ~]# docker exec -it b71077dc86f1 bash
[oracle@b71077dc86f1 /]$ su -
Password: 
[root@b71077dc86f1 ~]# source /etc/profile 
[root@b71077dc86f1 ~]# su - oracle
[oracle@b71077dc86f1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 21 13:54:36 2022

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> conn / as sysdba
Connected.

进入容器后先切换到root用户并通过source命令使环境变量生效,之后重新切换回oracle用户并通过sqlplus登录sysdba账号。

登录之后通过“select username, profile from dba_users”语句获取到所有用户和对应的profile类型,如下所示:

select username, profile from dba_users;

USERNAME                       PROFILE
------------------------------ ------------------------------
MGMT_VIEW                      DEFAULT
SYS                            DEFAULT
SYSTEM                         DEFAULT
DBSNMP                         MONITORING_PROFILE
SYSMAN                         DEFAULT
PAOHE                          DEFAULT
OUTLN                          DEFAULT
FLOWS_FILES                    DEFAULT
MDSYS                          DEFAULT
ORDSYS                         DEFAULT
EXFSYS                         DEFAULT

USERNAME                       PROFILE
------------------------------ ------------------------------
WMSYS                          DEFAULT
APPQOSSYS                      DEFAULT
APEX_030200                    DEFAULT
OWBSYS_AUDIT                   DEFAULT
ORDDATA                        DEFAULT
CTXSYS                         DEFAULT
ANONYMOUS                      DEFAULT
XDB                            DEFAULT
ORDPLUGINS                     DEFAULT
OWBSYS                         DEFAULT
SI_INFORMTN_SCHEMA             DEFAULT

USERNAME                       PROFILE
------------------------------ ------------------------------
OLAPSYS                        DEFAULT
SCOTT                          DEFAULT
ORACLE_OCM                     DEFAULT
XS$NULL                        DEFAULT
BI                             DEFAULT
PM                             DEFAULT
MDDATA                         DEFAULT
IX                             DEFAULT
SH                             DEFAULT
DIP                            DEFAULT
OE                             DEFAULT

USERNAME                       PROFILE
------------------------------ ------------------------------
APEX_PUBLIC_USER               DEFAULT
HR                             DEFAULT
SPATIAL_CSW_ADMIN_USR          DEFAULT
SPATIAL_WFS_ADMIN_USR          DEFAULT

由于PAOHE(当前被锁定的账号)账号对应的profile类型为‘DEFAULT’,因此先查所有profile为‘DEFAULT’的密码生命周期是否收到限制,若密码生命周期是存在时间限制的,那么当前账号被锁定有可能就是因为超出了时间限制引起的。

SQL> select * from dba_profiles s where s.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

PROFILE    RESOURCE_NAME       RESOURCE   LIMIT
---------- ------------------- --------   ----------

DEFAULT    PASSWORD_LIFE_TIME  PASSWORD   UNLIMITED

从上面的结果来看,账号对应的密码生命周期为无限制(unlimited)。

虽然方向错了,但是还是先解锁给团队先用着,不能因为排查问题而耽误了开发进度(毕竟不是生产问题)。

SQL> ALTER USER PAOHE ACCOUNT UNLOCK;

User altered.

之后在网上又查阅了部分资料发现,使用同一账号登录多次失败也是导致账号频繁被锁定的常见原因,因此先以RESOURCE_NAME = 'FAILED_LOGIN_ATTEMPTS’为条件查询一下,看看profile为DEFAULT的登录失败锁定有没有限定次数,如下所示:

SQL> SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'FAILED_LOGIN_ATTEMPTS';

PROFILE              RESOURCE_NAME          RESOURCE  LIMIT
-------------------- ---------------------- --------  ----------

DEFAULT              FAILED_LOGIN_ATTEMPTS  PASSWORD  10
MONITORING_PROFILE   FAILED_LOGIN_ATTEMPTS  PASSWORD  UNLIMITED

从上面输出可以看出,使用profile为DEFAULT的账号登录失败次数达到10次的情况下,账号将会被锁定。

接下来要解决这个问题就好办了,首先先修改限制从限定10次改为无限次(unlimited),如下所示:

SQL> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

Profile altered.

之后在服务器层面对入站准则进行了限制并设立白名单。从数据库层面增加了对于访问登录的监听,所有的数据库访问都将记录到listener.log里面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kotlin 开发Android app(九):Android两大布局LinearLayout和RelativeLayout

Kotlin 的基本特性就先写到这里,我们这个系列的定位是基础,也就是能用就好,够用就好,我们不会举太多的例子,但是这些都是最经常用到的特性。 从这节开始就是Kotlin和android 进行结合,使用Kotlin进行安卓应…

基于Spring Cloud的架构使用学习升级之路

引言 Spring Cloud全家桶用了挺长时间了,很长一段时间都是基于已有的架构进行需求研发。今年成为团队技术负责人,承担了新的项目,这是很好的一个机会,于是开启了项目架构升级之路。 架构,是团队项目的根基。在一个团…

数字信号处理-5-傅里叶分析

1 傅里叶系数 傅里叶级数用公式如下: a0、a1、a2、a3…b1、b2、b3…叫做傅里叶系数。cosnx 或 sinnx 中的 n 对应着频率,决定 sin、cos 大小的系数是 an、bn。 2 傅里叶变换 步骤1 求傅里叶系数 从原波形 F(x) 中求傅里叶系数中的 a0、a1、a2、a3……

IPD-产品需求管理过程(1)

一、产品需求管理模型 在确定客户需求时,要考虑影响用户购买标准的八类基本需求($APPEALS),并基于客户视角进行详细分解,形成有针对性的产品。 1.1、需求管理业务流程 二、需求收集流程 2.1、需求收集的来源 路标规划:通过市场管理流程分析,落实到路标规划中的需求…

python中StringIO和BytesIO

1. 类文件对象 最常见的io操作是将磁盘中的文件读到内存以及内存内容写入文I件。还有一种内存和内存之间的IO,叫类文件对象,python中的StringIO和BytesIO就是类文件对象,通俗解释即:像操作文件一样在内存中操作字符串和二进制内容…

基于FPGA的SD卡的数据读写实现(SD NAND FLASH)

文章目录 1、存储芯片分类 2、NOR Flash 与 NAND Flash的区别 3、什么是SD卡? 4、什么是SD NAND? 5、SD NAND的控制时序 6、FPGA实现SD NAND读写 6.1、设计思路 6.2、仿真结果 6.3、实验结果 1、存储芯片分类 目前市面上的存储芯片&#xff0…

如何使用腾讯云提供的WordPress应用镜像搭建博客网站系统!

之前也有写过搭建WordPress的教程,如何使用轻量应用服务器搭建WordPress个人博客使用的是宝塔面板一件搭建的方式,但是还是有一些麻烦,这里我们之间使用腾讯云提供的WordPress应用镜像搭建,感兴趣小伙伴可以参考以下! …

嵌入式分享合集108

一、PLC串口通讯的基本知识 这几天弄plc都要神经了 尤其西门子的 太烦了 s7200cn s7200smart s1200 编程软件都不一样~~服 , 然后接线也很烦 好了 正题 电气作业人员在使用PLC的时候会接触到很多的通讯协议以及通讯接口 什么是串口通讯? 串口通讯的使…

阿里强势推出Spring源码进阶宝典:思维脑图+视频教程+笔记文档

这不是准备跳槽了,所以最近摸鱼比较多一些,老大默许了,我觉得我老大还是很好的。也在网上看了一些资料,但是,我发现很多讲解注解的时候,对于一些可以直接点击源码查看的内容讲解的占多数,但是授…

ThreadPoolExecutor 线程池参数详解,执行流程

线程池的使用: public static void main(String[] args) {ThreadFactory sThreadFactory new ThreadFactory() {private final AtomicInteger mCount new AtomicInteger(1);Overridepublic Thread newThread(Runnable r) {int andIncrement mCount.getAndIncrement();return…

成熟的汽车衡称重软件,应具备哪些品质

每台汽车都配电子计算机、打印机各一台,并配相应称重管理软件。制造厂商开发的最新软件应免费及时为买方升级。自动称重系统管理软件选用国内成熟产品,至少在国内有10套以上稳定运行业绩,需配一套容量为2KVA,220V的UPS电源至少满足…

Guava LongMath类

Guava LongMath类 Guava LongMath类 LongMath提供long基础类型的实用方法。 类声明 以下是com.google.common.math.LongMath类的声明: GwtCompatible(emulatedtrue) public final class LongMath extends Object 方法 方法继承 这个类继承了以下类方法&#xf…

二、数据库查询语句(多表查询篇)

二、数据库查询语句(多表查询篇) 1、笛卡尔积 ​ 前面涉及的都是单张表的查询,如果我们的查询条件相对比较复杂,需要涉及多张表进行查询,如果是两张无关的表联合查询,列出所有的可能的结果,如下图: 如果没…

网易云课堂-课程分析

需要原始数据的可以联系我、在评论区留下邮箱 需要原始数据的可以联系我、在评论区留下邮箱 需要原始数据的可以联系我、在评论区留下邮箱 需要原始数据的可以联系我、在评论区留下邮箱 数据展示 一级类目 二级类目 三级类目 求和项:在学人数 平均值项:原始价格 平均值…

docker-compose配合Dockerfile使用

也就是在dockers-compose.yml文件中添加build 指定一下我的Dockerfile文件的路径 例如我的dockers-compose.yml文件在docker-compose文件夹下,而docker-compose文件夹与Dockerfile和项目的war包在同一级目录,也就是Dockerfile文件,在dockers-…

readme.md编写并生成html

目录1、Markdown教程2、生成html3、目录制作3.1 vscode Markdown Preview Enhanced 插件3.2 自定义侧边栏4、参考1、Markdown教程 Markdown 教程 | 菜鸟教程 2、生成html 通过 vscode 下载 Markdown Preview Enhanced、Markdown PDF等插件,就可以实现转化 3、目…

Linux网络管理OSI和TCP/IP

作者简介:一名软件运维工作人员,正在自学云计算课程。宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。创作不易,动动小手给个点…

【改进灰狼优化算法】贪婪的非分层灰狼优化算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

RF电路设计常见bug及解决方法

单片射频器件大大方便了一定范围内无线通信领域的应用,采用合适的微控制器和天线并结合此收发器件即可构成完整的无线通信链路。它们可以集成在一块很小的电路板上,应用于无线数字音频、数字视频数据传输系统,无线遥控和遥测系统,…

转自【AI科技评论】专访李海洲教授 | 机器智能对话是毕生所求

一直来到实叻坡,乜事无。上山来做工,伯公“多隆”保平安。——潮州过番歌 所谓“过番”,指早期潮州人外出务工,乘坐小船历经七天七夜到达东南亚谋生,“实叻坡”是马来语“Selat”的音译词,便是指“新加坡”…