今天同事反映一个问题,某个测试库修改了密码,并改了相关应用使用的密码后,仍出现一会账户就被锁住,报ORA-28000: the account

今天同事反映一个问题,某个测试库修改了密码,并改了相关应用使用的密码后,仍出现一会账户就被锁住,报ORA-28000: the account is locked的错误。

检查过程:

1. 查看资源限制生效参数

SQL> show parameter resource

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

resource_limit boolean FALSE

FALSE表示未启动资源限制。

2. 查看该用户所用的PROFILE

SQL> select resource_name, limit from dba_profiles where profile='DEFAULT';

RESOURCE_NAME LIMIT

-------------------------------- ----------------------------------------

COMPOSITE_LIMIT UNLIMITED

SESSIONS_PER_USER UNLIMITED

CPU_PER_SESSION UNLIMITED

CPU_PER_CALL UNLIMITED

LOGICAL_READS_PER_SESSION UNLIMITED

LOGICAL_READS_PER_CALL UNLIMITED

IDLE_TIME UNLIMITED

CONNECT_TIME UNLIMITED

PRIVATE_SGA UNLIMITED

FAILED_LOGIN_ATTEMPTS 10

PASSWORD_LIFE_TIME UNLIMITED

PASSWORD_REUSE_TIME UNLIMITED

PASSWORD_REUSE_MAX UNLIMITED

PASSWORD_VERIFY_FUNCTION NULL

PASSWORD_LOCK_TIME 1

PASSWORD_GRACE_TIME 7

其中FAILED_LOGIN_ATTEMPTS表示连续登陆失败的次数,这里表示连续登陆10次失败则锁定用户。

3. 解除用户锁定ALTER USER pss3 ACCOUNT UNLOCK;后观察现象

SQL> select name, lcount from user$ where;

NAME LCOUNT

------------------------------ ----------

PSS3 10

不到一分钟,登陆失败次数就到10次了。

初步结论:

可能有应用仍使用旧的密码登陆,登陆失败后重复尝试,直到10次为止。

但问题就来了:

1. FAILED_LOGIN_ATTEMPTS设置为10次,但未启动resource_limit,为什么还受到10次的限制呢?

2. 怎么知道还有哪些应用由于未修改密码导致ORA错误呢?

问题1:FAILED_LOGIN_ATTEMPTS设置为10次,但未启动resource_limit,为什么还受到10次的限制呢?

这篇MOS文章160528.1(Profile Limits (Resource Parameter(s)) Are Not Enforced / Do Not Work)文章说了一些:

After creating a new profile or altering an old one to limit the following profile resources there is no change:

SESSIONS_PER_USER

CPU_PER_SESSION

CPU_PER_CALL

CONNECT_TIME

IDLE_TIME

LOGICAL_READS_PER_SESSION

COMPOSITE_LIMIT

PRIVATE_SGA

The resource usage limits are not enforced and the users that are assigned the profile continue to use resources beyond profile's limits.

CAUSE

The initialization parameter RESOURCE_LIMIT is set to FALSE (default).

由于未设置RESOURCE_LIMIT为TRUE,以上变量修改后不会生效。

这里没有提到FAILED_LOGIN_ATTEMPTS,换句话说,像FAILED_LOGIN_ATTEMPTS这些变量是不受RESOURCE_LIMIT参数限制的,再看FAILED_LOGIN_ATTEMPTS这种变量属于用户口令管理方面的,像上面这些变量则属于资源管理方面的,猜测Oracle对于资源管理的限制则需要RESOURCE_LIMIT为TRUE,对于口令管理方面的限制并不受RESOURCE_LIMIT的影响。

OCP教材中正好说了:“Profiles are a useful way of managing passwords and resources but can really only apply in an environment where every application user has their own database user account.”注意到这里他将profile分成管理密码和资源两大类,虽然没有明说,但结合以上两段参考,以及上述实际碰到的问题,有理由相信口令管理方面的限制并不受RESOURCE_LIMIT参数的影响。

问题2:怎么知道还有哪些应用由于未修改密码导致ORA错误呢?

上面尝试了UNLOCK账户后不到一分钟LCOUNT登录失败次数就到了10次,说明这段时间有应用频繁重试密码,进一步,如果我们能找到这段时间访问库的IP,再筛选可能的IP和密码修改的应用,就可能找到“罪魁祸首”。

要想找到访问库的IP,可以通过设置监听日志,查找IP。

监听器的日志类似于alert日志,帖子中说日志默认路径是$ORACLE_HOME/network/log/listener.log,但我用的11g,不知道是否修改过,并没有找到这个目录。至于怎么找到的,接下来会说到。

按照@secooler的教程,开启监听器日志的方式有两种:

1. 不需要重启监听器的情况下通过设置log_status参数为off来实现。

2. listener.ora文件中增加LOGGING_=OFF参数,然后重启监听器实现

可以根据不同需要选择不同的方式。

这里我选择第一种,执行lsnrctl后执行set log_status on,然后需要找到日志路径:

ora11g@vm-kvm-ora$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 20-AUG-2014 11:56:27

Copyright (c) 1991, 2011, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production

Start Date 30-APR-2014 15:22:19

Uptime 111 days 20 hr. 34 min. 8 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /oracle/ora11g/product/11.2.0/network/admin/listener.ora

Listener Log File /oracle/ora11g/diag/tnslsnr/vm-kvm-ora/listener/alert/log.xml

这里我们看到有个信息Listener Log File,,后面就是对应的日志路径和日志文件名。

11g中使用了log.xml这种xml格式记录监听日志。

内容类似于:

20-AUG-2014 10:07:30 * (CONNECT_DATA=(SERVICE_NAME=pss3)(CID=(PROGRAM=dcs_data_sync)(HOST=v490h4-tux-t)(USER=dcsopen))) * (ADDRESS=(PROTOCOL=tcp)(HOST=x.x.x.x)(PORT=37339)) * establish * pss3 * 0

因此只需要找到解锁用户后仍登录的IP,然后再筛选可能的应用就行了。

这里还有个知识点,就是FAILED_LOGIN_ATTEMPTS设置的是连续登录失败的次数,还是累计登录失败的次数?

FAILED_LOGIN_ATTEMPTS表示连续登录失败的次数。

Oracle 11g 在RedHat Linux 5.8_x64平台的安装手册

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql account locked_ORA-28000: the account is locked用户锁定问题排查解决相关推荐

  1. oracle12c报ora28000,ORA-28000: the account is locked用户锁定问题排查解决

    今天同事反映一个问题,某个测试库修改了密码,并改了相关应用使用的密码后,仍出现一会账户就被锁住,报ORA-28000: the account is locked的错误. 检查过程: 1. 查看资源限 ...

  2. oracle 用户被锁住 28000 the account is locked

    场景:用docker起了一个oracle数据库,以前一直没问题,有一天在连接的时候报 28000 the account is locked,使用navicat连接的可以使用以下方法 使用管理员账号和 ...

  3. Oracle 数据库用户锁定与解锁,用户锁定最大密码失败次数设置方法,ORA-28000: the account is locked问题解决方法

    用户多次密码输入错误达到一定值就会被锁定. -- 用户锁定方法 alter user 数据库名 account lock; -- 用户解锁方法 alter user 数据库名 account unlo ...

  4. mysql error1045 yes_MySQLERROR1045(28000)错误的解决办法_MySQL

    错误现象: ERROR 1045 (28000): Access denied for user'ODBC'@'localhost'(using password: NO) ERROR 1045 (2 ...

  5. mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法

    mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法 参考文章: (1)mysql出现ERROR1698(28000) ...

  6. DBD::mysql::db do failed: Table cl_access was locked with a READ lock and can't be updated

    DBD::mysql::db do failed: Table 'acl_access' was locked with a READ lock and can't be updated at /us ...

  7. 数据库之MySQL ERROR 1698 (28000) 错误:Access denied for user 'root'@'localhost' error【摘抄】...

    声明:全文均摘抄于MySQL ERROR 1698 (28000) 错误 //错误起源:~$ mysql -u root -pEnter password: ERROR 1698 (28000): A ...

  8. 解决Mysql ERROR 1045 (28000)“Access denied for user 'root'@'localhost'”

    今天本地登入服务器的时候mysql提示:Mysql ERROR 1045 (28000)"Access denied for user 'root'@'localhost'" 解决 ...

  9. mysql5.7 1698 28000,MYSQL教程MySql Error 1698(28000)问题的解决方法

    搜索热词 <MysqL教程MysqL Error 1698(28000)问题的解决方法>要点: 本文介绍了MysqL教程MysqL Error 1698(28000)问题的解决方法,希望对 ...

最新文章

  1. Chord 弦 - 一个现代音乐播放器
  2. 生成器、生成器函数、推导式、生成器表达式
  3. RedHat 7.2配置本地yum源
  4. C语言 | 基于MPU605(六轴传感器)的I2C实现LCD1602显示(代码类)
  5. [数据结构]合并有序数组
  6. 王道考研 计算机网络17 IP数据报 最大传送单元MTU IP地址 IPv4 子网划分 ARP协议 ICMP协议 移动IP
  7. c语言中整形精确到后面几位,C语言中普通整型变数在记忆体中占几个位元组
  8. 【前端】VUE UI的安装
  9. GDAL1.11版本对SHP文件索引加速测试
  10. PPG信号滤波过后的时频分析
  11. Word转pdf文件使用技巧:怎么安装虚拟pdf打印机
  12. Linux 教程: (Linux基础+命令大全)
  13. word中带圈字符字体显示大小和位置不正常
  14. php页面增加js代码,php刷新当前页面_php js实现页面数据刷新的代码
  15. 系统无法以在此计算机上安装,windows无法完成安装若要在此计算机上安装怎么办...
  16. 维基百科--文件系统大全
  17. MPEG4技术全攻略
  18. 刷票投票的自动运行脚本
  19. 在ipad上播放flash大集合
  20. 创业阶段如何找客户_创业者如何找客户群

热门文章

  1. 【ElasticSearch】Es 源码之 AliasValidator 源码解读
  2. 40-400-040-运维-优化-MySQL File Sort 原理以及优化
  3. 【kafka】Kafka 2.0 ConsumerGroupCommand新功能
  4. drools 7.x 决策表转drl
  5. deepin中自定义安装的软件如何加入到启动器
  6. mysql字符串比较数字
  7. redis学习-redis事务
  8. 2019.8.6原型链与继承
  9. celery4+django2定时任务
  10. NumPy数值计算库-1