ORA-ora 28000 帐户锁定the account is locked怎么办

Oracle 11g 密码过期被锁报 ORA-28000 the account is locked_数据库技术_Linux公社-Linux系统门户网站
你好,游客
Oracle 11g 密码过期被锁报 ORA-28000 the account is locked
来源:Linux社区&
作者:wuweilong
一、触发这个错误的原因及相关因素
是由于 11g中默认在default概要文件中设置了&PASSWORD_LIFE_TIME=180天&所导致,在Oracle 11g中是存在密码过期问题的。
二、错误现象:
用户被锁定之后会报ORA-28000的错误,并提示无法登录到数据库&SQL& conn system/oracle
ORA-28000: the account is locked
Warning: You are no longer connected to ORACLE.
三、解决方法:
按照如下步骤进行操作:
1、查看用户的proifle是哪个,一般是default:
SQL& select username,profile from dba_users where username='SYSTEM';
USERNAME& & & & & & & & & & &
PROFILE&------------------------------ ------------------------------&SYSTEM& & & & & & & & & & & &
&2、查看指定概要文件(如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 180DAY
&3、将密码有效期由默认的180天修改成&无限制&:
sql&ALTER PROFILE DEFAULT LIMITPASSWORD_LIFE_TIMEUNLIMITED;
修改之后不需要重启动数据库,会立即生效。
4、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;
已经被提示的帐户只需解锁即可。
$sqlplus / as sysdba
SQL& alter user s
User altered.
5、如果还无法登录,执行再配置一次密码就OK了。(跟原密码一样就好)
SQL& alter user system
User altered.
Oracle 11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以上方式进行修改。以上的帐户名请根据实际使用的帐户名更改。
--------------------------------------------------------------------------------
Oracle用户密码过期和用户被锁解决方法
密码过期 ORA-28002 问题处理
ORA-28002 密码过期警告
ORA-28002密码将在7天后过期&
Linux-6-64下安装Oracle 12C笔记
在 6.4下安装Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虚拟机中安装步骤
Debian 下 安装 Oracle 11g XE R2
--------------------------------------------------------------------------------
更多Oracle相关信息见 专题页面
本文永久更新链接地址:
相关资讯 & & &
& (08月09日)
& (02月24日)
& (08/20/:41)
& (05月13日)
& (01月19日)
& (10/31/:22)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款一次ORA-28000: the account is locked用户锁定的问题排查 - 博客频道 - CSDN.NET
bisal的专栏
分类:个人心得技术之我见Oracle
今天同事反映一个问题,某个测试库修改了密码,并改了相关应用使用的密码后,仍出现一会账户就被锁住,报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次了。
初步结论:
可能有应用仍使用旧的密码登陆,登陆失败后重复尝试,直到10次为止。
但问题就来了:
1. FAILED_LOGIN_ATTEMPTS设置为10次,但未启动resource_limit,为什么还受到10次的限制呢?
2. 怎么知道还有哪些应用由于未修改密码导致ORA错误呢?
问题1:FAILED_LOGIN_ATTEMPTS设置为10次,但未启动resource_limit,为什么还受到10次的限制呢?
这篇MOS文章(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
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.
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_&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-:27
Copyright (c) , 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-: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-: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表示连续登录失败的次数。
排名:第1502名
(136)(190)(18)(6)(0)(1)(1)(200)(20)(8)(18)(1)(1)(5)(1)(1)(3)(2)(2)(1)(1)(0)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(0)(0)(1)(1)ORA-28000: the account is locked解决_数据库技术_Linux公社-Linux系统门户网站
你好,游客
ORA-28000: the account is locked解决
来源:Linux社区&
作者:Linux
在中,连续十次尝试登陆不成功,那么此账户将会被锁定(lock)。当使用被锁定的账户登录时,系统会报错:ORA-28000:the account is locked。本文描述次错误的解决思路。
1.& 使用system或者sys账户登录,注意请以管理员身份登录。Sytem和sys的默认密码请在网上查找。本文以sys账户为例,sys的默认密码是:change_on_install& 。
2.&使用命令解锁用户。命令为:alteruser u其中username为被锁定的用户名。
3.& 重置用户密码。命令为:alter user username id其中username为用户名,password为新密码。
4. 使用账户重新尝试登陆。如果命令全部执行成功,那么应该可以正常登陆系统。
ORA-28000: the account is locked用户锁定问题排查解决
更多Oracle相关信息见 专题页面
本文永久更新链接地址:
相关资讯 & & &
& (05月13日)
& (08/20/:41)
& (08/25/:30)
& (01月19日)
& (09/14/:19)
& (05/08/:00)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款the account is locked登录PLSQL总出现这个错误,
用户被锁定了,用system或sys用户登录.然后执行ALTER USER username ACCOUNT UNLOCK;
为您推荐:
其他类似问题
扫描下载二维码6366人阅读
苦咖啡.Oracle错误处理(13)
用sys 查询账户情况:
SQL& conn / as sysdba
SQL& alter user SCOTT account unlock
User altered.
SQL& select username,account_status from dba_users where username='SCOTT';
USERNAME&&&&&&&&&&&&&&&&&&&&&& ACCOUNT_STATUS
------------------------------ --------------------------------
SCOTT&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& OPEN
解决方法:
ORA-28000: the account is locked
第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为S
第二步:选择myjob,查看
第三步:选择system,右击点击“编辑”;
第四步:修改密码,把“帐户被锁住”的勾去掉;
第五步:点击“应用”再点击“关闭”;
第六步:重新登录就可以通过验证了;
ALTER USER username ACCOUNT UNLOCK;
在plsql developer中要是以scott/tiger登录时提示ora-28000 the account is locked。
解决办法:
新装完Oracle10g后,用scott/tiger测试,会出现以下错误提示:
oracle10g the account is locked
oracle10g the password has expired
原因:默认Oracle10g的scott不能登陆。
(1)conn sys/ //以DBA的身份登录
(2)alter user // 然后解锁
(3)conn scott/tiger //弹出一个修改密码的对话框,修改一下密码就可以了
在运行里面输入cmd在DOS模式下输入sqlplus,以system用户名登录,密码是刚装oracle时自己填写的密码orcl,登录进去以后。
SQL& conn sys/ (分号是必须的但是我是以system登录的所在这不应该写conn sys/sys as sysdba应该写conn system/)
Connected.
SQL& alter user
User altered.
Commit complete.
SQL& conn scott/tiger//请输入新密码,并确认后OK
Password changed
Connected.
这时再到plsql developer里面以scott/tiger登录就可以了。。。。。
偶在数据库的问题处理过程中遇到了ORA-28000:the account is locked的错误,现将详细的处理情况介绍如下供大家参考:
1. 查询failed_login_attempts参数默认值:
Oracle(备注:9i环境中此参数的值为unlimited)
SQL&conn /as sysdba
Connected.
SQL& desc dba_
名称 是否为空? 类型
----------------------------------------- -------- --------------
PROFILE NOT NULL VARCHAR2(30)
RESOURCE_NAME NOT NULL VARCHAR2(32)
RESOURCE_TYPE VARCHAR2(8)
LIMIT VARCHAR2(40)
SQL& select resource_name,limit from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS';
RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS 10
2. 模拟账户被锁现象
(为方便模拟lock现象,修改default profile failed_login_attempts=3 )
a.修改参数failed_login_attempts=3
SQL& conn /as sysdba
SQL& alter profile default limit failed_login_attempts 3;
配置文件已更改
SQL& select resource_name,limit from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS';
RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS 3
b.重现错误登陆
SQL& conn jd/jd
第一次登录失败
SQL& conn jd/jh
ORA-01017: invalid username/ logon denied
警告: 您不再连接到 ORACLE。
第二次登陆失败
SQL& conn jd/ju
ORA-01017: invalid username/ logon denied
第三次登录失败
SQL& conn jd/jl
ORA-01017: invalid username/ logon denied
连续三次登录失败后,账户被锁定
SQL& conn jd/jy
ORA-28000: the account is locked
SQL& conn /as sysdba
SQL& alter us
用户已更改。
4. 解决方案
(1) 可以考虑查询应用部署中错误的password或者数据库连接等可能导致错误password的地方,彻底的查询问题所在。
(2) 修改参数failed_login_attempts=unlimited
SQL& alter profile default limit failed_login_
配置文件已更改
SQL& select resource_name,limit from dba_profiles where resource_name='FAILED_LO
GIN_ATTEMPTS';
RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS UNLIMITED
5. 扩展知识点及备注说明
(1) Q: FAILED_LOGIN_ATTEMPTS=3 3的含义是什么?是累计失败次数还是连续失败次数?
A: FAILED_LOGIN_ATTEMPTS=3的含义是从第一次登录失败开始计算,连续登陆失败的次数。而不是累计失败的次数。
试验如下:
SQL& conn /as sysdba
SQL& alter profile default limit failed_login_attempts 3;
配置文件已更改
SQL& conn jd/jd
第一次登录失败
SQL& conn jd/jh
ORA-01017: invalid username/ logon denied
警告: 您不再连接到 ORACLE。
第二次登陆失败
SQL& conn jd/gh
ORA-01017: invalid username/ logon denied
SQL& conn jd/jd
第一次登录失败
SQL& conn jd/df
ORA-01017: invalid username/ logon denied
警告: 您不再连接到 ORACLE。
第二次登陆失败
SQL& conn jd/sd
ORA-01017: invalid username/ logon denied
第三次登录失败
SQL& conn jd/fg
ORA-01017: invalid username/ logon denied
三次登录失败之后,用户被锁定
SQL& conn jd/hj
ORA-28000: the account is locked
(2) Q: 如何从数据库中查询当前FAILED_LOGIN_ATTEMPTS的值?dba_profiles是限额,并不代表当前值,如果查询当前失败的值怎么查?
A: select NAME,LCOUNT from user$,user$为view dba_users的基表,通常可以查询一下试图对应的基表,oracle可能会隐藏一些参数。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:277842次
积分:2768
积分:2768
排名:第9986名
原创:29篇
转载:79篇
评论:14条
(3)(2)(3)(1)(1)(2)(1)(2)(4)(5)(17)(9)(2)(9)(2)(4)(3)(9)(1)(4)(1)(1)(1)(3)(3)(16)

我要回帖

更多关于 oracle ora 28000 的文章

 

随机推荐