Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 353|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-20 19:34:29 | 显示全部楼层 |阅读模式

    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;  
    问题解决

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

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-17 04:45 , Processed in 0.073465 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表