【Oracle】数据库账号频繁被锁问题解决
创始人
2024-02-07 02:17:29

文中使用的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 sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 21 13:54:36 2022Copyright (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 optionsSQL> 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                         DEFAULTUSERNAME                       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             DEFAULTUSERNAME                       PROFILE
------------------------------ ------------------------------
OLAPSYS                        DEFAULT
SCOTT                          DEFAULT
ORACLE_OCM                     DEFAULT
XS$NULL                        DEFAULT
BI                             DEFAULT
PM                             DEFAULT
MDDATA                         DEFAULT
IX                             DEFAULT
SH                             DEFAULT
DIP                            DEFAULT
OE                             DEFAULTUSERNAME                       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里面。

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...