原因:Oracle11g密码只保存180天,也就是有效期是180天。
解决办法:1> cmd打开控制台,登录oracle(管理员身份登录)
普通用户:sqlplus username/password;
管理员:sqlplus username/password as sysdba;
2>查询密码有效期
select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
显示以下结果:(即密码有效期180天)
PROFILE
------------------------------------------------------------
RESOURCE_NAME
------------------------------------------------------------
RESOURCE_TYPE
----------------
LIMIT
------------------------------------------------------------
DEFAULT
PASSWORD_LIFE_TIME
PASSWORD
180
------------------------------------------------------------
3>修改密码期限为无限期
alter profile default limit password_life_time unlimited;
commit;
出于数据库安全性考虑,不建议将password_life_time值设置成unlimited,建议大家定期修改数据库用户口令。
4>执行查看密码有效的日期是否已经更改
select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
PROFILE
------------------------------------------------------------
RESOURCE_NAME
------------------------------------------------------------
RESOURCE_TYPE
----------------
LIMIT
------------------------------------------------------------
DEFAULT
PASSWORD_LIFE_TIME
PASSWORD
UNLIMITED
------------------------------------------------------------
5> 修改密码 lter user 用户名 identified by 新密码;
6>如果账号被锁住,则需要解锁命
alter user XXXUSER identified by oracle account unlock;
注意:可能更改后,使用普通用户还是连接不到数据库
此时,会报出invalid username/password; logon denied 错误(程序中的用户和密码无法登录,登录被拒)
解决办法:1>查看用户名是否存在 select username from dba_users;
2>重置一下密码 alter user 用户名 identified by 密码;