Oracle 11g密码过期问题及解决方案

Posted lclc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 11g密码过期问题及解决方案相关的知识,希望对你有一定的参考价值。

 

问题:

在自用的一个系统里,连接的是本地自建的一个数据库。用sqldeveloper登录数据库。提示如下图:

 

提示:密码过期

解决方案:

密码过期一般存在两种可能:

  1. 由于Oracle中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致。
  2. 由于Oracle中默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此问题。

首先用dba数据库超级管理员登录该数据库,然后进行以下操作

 

第一种情况解决方案:

  1. 查看用户用的哪种profile策略,一般是default:

代码:

 select username,profile from dba_users

结果:

 

  2.查看指定概要文件(如default)的密码有效期设置:

代码:

Select * FROM dba_profiles s Where s.profile=\'DEFAULT\' AND resource_name=\'PASSWORD_LIFE_TIME\'

结果:

 

 

  3.将密码有效期由默认的180天修改成“无限制”:

代码:

 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED

结果:

 

  4.修改密码,相当于重置密码

代码:

alter user GAEA_WHGT identified by 111111

结果:

 

注意:该处的GAEA_WHGT指数据库的用户名,111111指修改后的密码(改密码也可以与原先的密码一样)

  5.修改成功后即用已修改的用户名与密码登录。测试状态显示成功。则说明密码修改成功。

 

注意:

数据库密码有效期也可以不用更改,直接进行第四步修改密码即可,但这新修改的密码在180天后还会出现密码过期的问题。

 

第二种情况解决方案:

1.查看用户用的哪种profile策略,一般是default:

代码:

 select username,profile from dba_users

结果:

 

2.查看指定概要文件(如default)的密码次数设置:

代码:

 SELECT * FROM dba_profiles s WHERE s.profile=\'DEFAULT\' AND resource_name=\'FAILED_LOGIN_ATTEMPTS\'

结果:

 

3.将尝试登录失败次数由默认的10次修改成“无限制”:

代码:

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

结果:

 

4.修改后,还没有被提示ORA-28000警告的用户不会再碰到同样的提示; 已经被锁定的帐户必须解除锁定,举例如下:

代码:

 alter user GAEA_WHGT identified by oracle account unlock

结果:

 

5.修改后default profile应该如下
代码:

 select * from dba_profiles WHERE dba_profiles.profile=\'DEFAULT\'

结果:

 

6.修改之后不需要重启动数据库,会立即生效。 如果出现ORA-28000 the account is locked.错误

代码:

alter user 用户名 account unlock

以上是关于Oracle 11g密码过期问题及解决方案的主要内容,如果未能解决你的问题,请参考以下文章

解决Oracle11g密码180天过期,账号锁住的问题

Oracle 11g 密码过期被锁报 ORA-28000 the account is locked

Oracle用户密码过期问题解决

oracle 11g 数据库密码过期怎么办?

oracle环境,有一个用户的密码忘掉了,并且用户过期,怎么能够使用原来的密码处理用户过期问题

Oracle用户密码过期的处理方法