Oracle 11g密码过期问题及解决方案
原文地址:https://www.cnblogs.com/bad-guy/p/10998115.html
问题:
在自用的一个系统里,连接的是本地自建的一个数据库。用sqldeveloper登录数据库。提示如下图:
提示:密码过期
解决方案:
密码过期一般存在两种可能:
- 由于Oracle中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致。
- 由于Oracle中默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此问题。
首先用dba数据库超级管理员登录该数据库,然后进行以下操作
第一种情况解决方案:
- 查看用户用的哪种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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!