一旦ORA-28000: the account is locked用户锁定故障排除
今天我的同事们反映的问题,测试库的变化password,并改变相关的应用程序中使用password后,其中一个仍然会出现在帐户被锁定,报告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='PSS3';
NAME LCOUNT
------------------------------ ----------
PSS3 10
不到一分钟,登陆失败次数就到10次了。
初步结论:
可能有应用仍使用旧的password登陆。登陆失败后反复尝试,直到10次为止。
但问题就来了:
1. FAILED_LOGIN_ATTEMPTS设置为10次。但未启动resource_limit。为什么还受到10次的限制呢?
2. 怎么知道还有哪些应用因为未改动password导致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分成管理password和资源两大类,尽管没有明说,但结合以上两段參考。以及上述实际碰到的问题。有理由相信口令管理方面的限制并不受RESOURCE_LIMIT參数的影响。
问题2:怎么知道还有哪些应用因为未改动password导致ORA错误呢?
上面尝试了UNLOCK账户后不到一分钟LCOUNT登录失败次数就到了10次,说明这段时间有应用频繁重试password,进一步。假设我们能找到这段时间訪问库的IP,再筛选可能的IP和password改动的应用,就可能找到“罪魁祸首”。
要想找到訪问库的IP,能够通过设置监听日志。查找IP。
监听器的日志类似于alert日志,帖子中说日志默认路径是$ORACLE_HOME/network/log/listener.log,但我用的11g。不知道是否改动过。并没有找到这个文件夹。至于怎么找到的。接下来会说到。
依照@secooler的教程。开启监听器日志的方式有两种:
1. 不须要重新启动监听器的情况下通过设置log_status參数为off来实现。
2. listener.ora文件里添加LOGGING_<listener_name>=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格式记录监听日志。
内容类似于:
<txt>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
</txt>
因此仅仅须要找到解锁用户后仍登录的IP,然后再筛可能的应用来选。
还有一个知识点,那是,FAILED_LOGIN_ATTEMPTS设置连续的登录失败次数,或者登录失败的累计数?
FAILED_LOGIN_ATTEMPTS表示连续登录失败的次数。
一旦ORA-28000: the account is locked用户锁定故障排除的更多相关文章
- 登录plsql 报错 the account is locked --用户被锁
登录数据库服务器,进入oracle用户下: [root@uumsnormal-oracle admin]# su - oracle [oracle@uumsnormal-oracle ~]$ sqlp ...
- 问题:ORA-28000: the account is locked 用户锁住了。
打开cmd: 执行 sqlplus /nolog 执行conn / as sysdba 执行 ALTER USER username ACCOUNT UNLOCK;
- Oracle 数据库用户锁定与解锁,用户锁定最大密码失败次数设置方法,ORA-28000: the account is locked问题解决方法
转至:https://blog.csdn.net/qq_38161040/article/details/108274161 用户多次密码输入错误达到一定值就会被锁定. -- 用户锁定方法 alter ...
- oralce的系统用户system的输入口令怎么找回?遇见ORA-28000: the account is locked怎么解锁?
好几个月前安装的Oracle软件忽然想用就忘记了当初设置的口令了,今天查了下怎么找回. 以一个用户jqz/jqz(曾经建立的一个用户.幸亏还记得)的身份登录后: SQL> connect/as ...
- ORA-28000: the account is locked 查哪个具体ip地址造成
查系统默认的策略,连续验证10次错误帐户即会被锁 SQL> select resource_name, limit from dba_profiles where profile='DEFAUL ...
- oracle报错:ORA-28000: the account is locked
连接数据库的时候报: ORA-28000: the account is locked 解决方法: cmd-进入命令行 C:\Users\0>sqlplus /nolog SQL*Plus: R ...
- The account is locked
SQL> select * from v$version where rownum=1; BANNER --------------------------------------------- ...
- 解决ORA-28000: the account is locked
原文地址:http://yanwushu.sinaapp.com/ora-28000-the-account-is-locked/ 在oracle中.连续十次尝试登陆不成功.那么此账户将会被锁定(lo ...
- Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
一.触发这个错误的原因及相关因素 是因为oracle11g中默认在default概要文件里设置了"PASSWORD_LIFE_TIME=180天"所导致.在Oracle 11g中是 ...
随机推荐
- android面试题2
一.属于GLSurFaceView特性的是: 1.管理一个surface,这个surface就是一块特俗的内存.能直接排版到Android的视图view上. 2.管理一个EGL display,它能让 ...
- Xamarin.forms 自定义tabview控件
一 问题描述 forms本身ui代码是翻译为平台原生代码,forms按照xaml技术进行对android和ios两种ui模型进行公共抽象出了几种page和view,在空杯博客已经有详细介绍 http: ...
- Delphi中使用GDI+进行绘图(1)
Delphi的VCL类库中,默认使用的是GDI绘图接口,该接口封装了Win32 GDI接口,能够满足基本的绘图功能,但如果要实现更高级的绘图功能,往往比较困难,GDI+是微软在GDI之后的一个图形接口 ...
- String[255]在高版本Delphi里还是被解释成Byte,总体长度256,使用StrPCopy可以给Array String拷贝字符串(内含许多实验测试)
学了好多不了解的知识: procedure TForm1.Button1Click(Sender: TObject); var s1 : String; s2 : String[]; begin s1 ...
- ConnectivityManager
ConnectivityManager 主要管理网络连接的相关的类它主要负责的是1 监视网络连接状态 包括(Wi-Fi, GPRS, UMTS, etc)2 当网络状态改变时发送广播通知3 当网络连接 ...
- must return an Iterable of arrays.(junit4)
java.lang.Exception: TestIterator.init() must return an Iterable of arrays. at org.junit.runners.Par ...
- #pragma 预处理指令详解
源地址:http://blog.csdn.net/jx_kingwei/article/details/367312 #pragma 预处理指令详解 在所有的预处理指令中, ...
- QT 4.2.2的安装(安装完还要再编译,注意设置Windows Path)
(安装篇)前奏: 提到C++的GUI Framework估计大多数人都会想到MFC.VCL,因为在十年前的COM时代,这两个大家伙几乎垄断了整个C++ windows平台上应用程序的开发市场, 但是最 ...
- 用Feed43为随意站点定制RSS feed教程~
用Feed43为随意站点定制RSS feed教程- Feed43--自己定义RSS种子的免费工具中笔者的最爱,确切来讲Feed43不适合心脏衰弱者.通过它的服务,我能够很好地控制种子的终于样式,当然 ...
- 警惕!iPhone 6即将上市 诈骗邮件已现身网络
随着iPhone 6即将上市,各路小道消息已经開始满天飞.就在近几日,一些记者还收到了假的iPhone 6将要上市的通知邮件.趋势科技也收到了几封,下面是样本之中的一个: (垃圾邮件样本) 不清楚iP ...