ORACLE错误:ORA-28001: the password has expired解决方法

Oracle提示错误消息ORA-28001: the password has expired,是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个默认的功能很容易被DBA或者是开发人员给疏忽,
一旦密码180天未修改过,就会出现这样的问题。
解决方法有两种:
解决方法可通过如下SQL语句
注: 首先需要使用dba登录.
运行SQLPlus命令行工具, 输入:
connect as sysdba;
输入dba的用户名和密码后进行.
SELECT * FROM dba_profiles WHERE profile=‘DEFAULT‘ AND resource_name=‘PASSWORD_LIFE_TIME‘
查询密码的有效期设置,LIMIT字段是密码有效天数。
方法一:
在密码将要过期或已经过期时可通过如下语句进行修改密码,密码修改后该用户可正常连接数据库。
ALTER USER 用户名 IDENTIFIED BY 密码 ;

方法二:
如果想去除180天的密码生存周期的限制可通过如下SQL语句将其关闭
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED
如上SQL语句将口令有效期默认值180天修改成了“无限制”。但是出于数据库安全性考虑,
不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,建议大家定期修改数据库用户口令。

oracle密码过期the password has expired解决办法  
oracle 出现the password has expired这个问题,今天突然发现项目访问不了,一查发现用不了,也登不进去,
这个问题由是Oracle11g密码过期的原因导致的
调试Web项目的时候出现异常:
[java] view plaincopyprint?
java.sql.SQLException: ORA-28001: the password has expired  
网上查了一下,连接Oracle,以Oracle用户登陆,输入以下命令
[sql] view plaincopyprint?

select * from dba_profiles where profile=‘DEFAULT‘ and resource_name=‘PASSWORD_LIFE_TIME‘;  
结果显示:
PROFILE  
 ------------------------------------------------------------  
    RESOURCE_NAME  
------------------------------------------------------------  
    RESOURCE_TYPE  
----------------  
    LIMIT  
 ------------------------------------------------------------  
        
DEFAULT  
    PASSWORD_LIFE_TIME  
    PASSWORD  
    180

结果显示密码有效期是180天
输入命令:
alter profile default  limit password_life_time unlimited;  
commit;

再次执行:
select * from dba_profiles where profile=‘DEFAULT‘ and resource_name=‘PASSWORD_LIFE_TIME‘;  
结果显示为:

[sql] view plaincopyprint?

PROFILE  
    ------------------------------------------------------------  
    RESOURCE_NAME  
    ------------------------------------------------------------  
    RESOURCE_TYPE  
    ----------------  
    LIMIT  
    ------------------------------------------------------------  
        
    DEFAULT  
    PASSWORD_LIFE_TIME  
    PASSWORD  
    UNLIMITED

进行以上步骤之后需要改变密码,否则还会出现password has expired异常     ???

改变密码的命令
alter user XXXUSER identified by Welcome1;  
如果账号被锁住,则需要解锁命令
alter user XXXUSER identified by oracle account unlock;  
问题解决

备注:随笔中内容来源于网上资料整理,仅供参考。

时间: 2025-01-02 03:57:58

ORACLE错误:ORA-28001: the password has expired解决方法的相关文章

ORA-28001: the password has expired解决方法

Oracle提示错误消息ORA-28001: the password has expired,是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录. Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个默认的功能很容易被DBA或者是开发人员给疏忽,一旦密码180天未修改过,就会出现这样的问题. 解决方法可通过如下SQL语句 注: 首先需要使用dba登录. 运行SQ

Oracle用户密码过期和用户被锁解决方法

[原因/触发因素] 确定是由于oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. [影响和风险] 影响    密码过期后,业务进程连接数据库异常,影响业务使用.    问题发生频率    数据库密码过期后,业务进程一旦重启会提示连接失败. [解决方案] 按照如下步骤进行操作: 1.查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_user

[转]Oracle 10g及pro*c相关问题及解决方法(转)

Oracle 10g及pro*c相关问题及解决方法 2008年08月21日 星期四 上午 11:21 最近一直在进行ORACLE 10g和PRO*C的学习. 其中遇到了不少的问题: 现列于此,已备他用. [注:我的linux版本是RHEL 5,Oracle版本是10g] 1.在ORACLE 10g 安装准备的过程中:缺少libXp.so.6依赖 上网搜过不少文章,但是都不是很好的解决 我自己摸索出一个解决方法: 在RHEL5的安装盘中找到libXp-1.0.0-8.i386.rpm,进行安装后,

Oracle 使用本地IP地址连接异常的解决方法

前几天的安装的Oracle测试环境,今天发现不能使用本地IP连接,连接提示错误 "Oracle the network adapter could not establish the connection" 这个问题折腾我时间比较长,网上很多资料都不太适合我的情况.不过最后还是被找到了 花了很多时间在其他方面没有锁定问题根源. 1 开始以为是防火墙 server client端都排除 2 oracle client端问题 (ubuntu 安装的client端) 3 最后用程序测试发现还

oracle select in超过1000条报错解决方法

本博客介绍oracle select in超过1000条数据的解决方法,java框架是采用mybatis的,这可以说是一种比较常见的错误:select * from A where id in(...),oracle官方函数做了限定,in里的参数只能1000个,所以超过1000个参数就会报错,解决方法是将集合分为每个集合1000的小集合,然后用or拼起来select * from A where id in(1,2,...,1000) or id in (1001,1002,2000)...,好

【CentOS】fstab挂载项错误,无法正常启动系统的解决方法

因/etc/fstab的配置错误,导致重启系统时,无法正常进入系统,会卡在以下的页面. 提示的错误信息类似: An   error   occurred  during   the  file   system   check. 解决方法: 1.在错误的启动界面处输入root的密码(不会有显示的,只管输入正确的密码即可) 2.然后会出现(Repair  filesystem)1#的提示符,在其后面输入运行:mount  -no  remount,rw   / 3.编辑/etc/fstab的文件,

php 表单提交错误后返回数据消失问题的解决方法

本文章向码农们介绍php 表单提交错误后返回数据消失问题的解决方法,感兴趣的码农可以参考一下. 表单提交错误后返回数据消失怎么办呐,今天就来分析解决一下这个问题. 状况概述: 做填写表单信息提交的时候会碰到一个问题就是当用户填写并提交表单后,程序判断不符合要求并返回,返回之后之前填写的表单信息会被清空了的情况.如果填写的信息量少还无所谓,如果填写的信息量比较多,这会直接打击到填写信息的人的良好心情.因此解决表单提交错误返回后填写的内容消失的问题是一个提高用户体验度的迫在眉睫的问题. 对于这种问题

sqlserver 遇到以零作除数错误的处理 不报错的解决方法

原文:sqlserver 遇到以零作除数错误的处理 不报错的解决方法 使用sqlserver 的选项来禁止出现以零除的错误中断,让而让其为null set ansi_warnings offSET ARITHABORT offSET ARITHIGNORE on select 1/0 显示结果 无列名 null

wamp出现问题#1045 - Access denied for user 'root'@'localhost' (using password: NO)的解决方法

打开wamp->apps->phpmyadmin目录下面的config.inc.php文件 cfg['Servers'][$i]['verbose'] = 'localhost';$cfg['Servers'][$i]['host'] = 'localhost';$cfg['Servers'][$i]['port'] = '';$cfg['Servers'][$i]['socket'] = '';$cfg['Servers'][$i]['connect_type'] = 'tcp';$cfg[