Oracle报错:ORA-28001:口令已失效

Posted bai_student

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle报错:ORA-28001:口令已失效相关的知识,希望对你有一定的参考价值。

一、链接Oracle报错 :ORA-28001:口令已失效 解决办法

原因:Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录
解决方式:

  • 方式一: 在密码将要过期或已经过期时进行修改密码,密码修改后该用户可正常连接数据库
  • 方式二: 将口令有效期默认值180天修改为“无限制”。但是出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED

二、查看数据库密码默认有效期:

  1. 登录Oracle,在CMD命令窗口中输入:
sqlplus scott/tiger@orcl as sysdba;
  1. 查看用户的proifle是哪个,一般是default
select username,PROFILE FROM dba_users;

  1. 查看对应的概要文件(如default)的密码有效期设置:
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

三、解决方式一:修改用户密码

alter user 用户名 identified by 新密码;

四、解决方式二:修改默认有效期

  1. 将概要文件(如default)的密码有效期由默认的180天修改成“无限制”,修改之后不需要重启动数据库,会立即生效
alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

  1. 修改后,还没有被提示ORA-28002警告的用户账号不会再碰到同样的提示;而已经被提示的用户账号必须再改一次密码
alter user 用户名 identified by <原来的密码> account unlock;   //可以不用换密码

Oracle报错,ORA-28001: 口令已经失效

报错:Oracle报错,ORA-28001: 口令已经失效

 

oracle 12c的密码默认有效期为180天

 

密码过期解决方法:

1、通过如下sql查询所有用户密码有效期配置。

sql>SELECT username,PROFILE FROM dba_users;

上述sql查询结果一般为default

 

2、使用如下sql可以查询到default的默认值

sql>select *  from dba_profiles where profile = ‘DEFAULT‘  and resource_name = ‘PASSWORD_LIFE_TIME‘

 

3、处理:

方法一:将默认的有效期改为无限期

sql>alter profile default limit password_life_time unlimited;   

 这种方法生产环境应该不太适用,因为还要重启才生效

 

方法二:修改密码,修改时密码不变,但有效期增加。

sql>alter user 用户名 identified by <原来的密码> account unlock; ----不用换新密码

 

以上是关于Oracle报错:ORA-28001:口令已失效的主要内容,如果未能解决你的问题,请参考以下文章

oracle 12C提示:ORA-28001口令已经失效

oracle 12C提示:ORA-28001口令已经失效

oracle 12C提示:ORA-28001口令已经失效

ORA-28001: 口令已经失效

ORA-28001:口令已经失效

ora-28001导致人事web APP 不好用