今天在执行程序时,突然报了个这个错,之前项目是正常的,后来一查,是因为oracle11g创建用户缺省密码过期限制是180天(即6个月);
如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个
默认的功能很容易被DBA或者是开发人员给疏忽,一旦密码180天未修改过,就会出现这样的问题。
1.需要使用dba登录.使用cmd/sqlplus 命令或者是pl/sql登录
2.可以执行语句
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
你会看到用户的密码限制是180天后更改
3.解决办法
(1).你可以直接修改用户密码
alter user UserName identified by Password;
去除180天的密码生存周期的限制
(2).你也可以去除180天的密码生存周期的限制,把它变成unlimited
alter profile default limit password_life_time unlimited;
这句SQL语句将口令有效期默认值180天修改成了“无限制”。但是出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,建议大家定期修改数据库用户口令。