今天在上班的过程中,客户反映他们的系统无法登录,经过一番排查,发现是数据库过期导致的密码。在网上搜索了相关资料,发现确实存在这种情况,特整理在这里,以供大家共同交流!原因:在oracle11g中,默认在defaultprofile中设置“PASSWORD_LIFE_TIME=180days”所致。在oracle11g中,defaultprofile中默认设置了“FAILED_LOGIN_ATTEMPTS=10次”。当密码输入错误次数达到设定值时,就会出现该问题。解决方法:原因1--->1,查看用户的profile,一般是default:sql>SELECTusername,PROFILEFROMdba_users;2,查看指定profile的密码有效期设置(如default):sql>SELECT*FROMdba_profilesWHEREs.profile='DEFAULT'ANDresource_name='PASSWORD_LIFE_TIME';3、将密码的有效期由默认的180天改为“***”:sql>ALTERPROFILEDEFAULTLIMITPASSWORD_LIFE_TIMEUNLIMITED;备注:修改后无需重启数据库,立即生效;修改后,之前没有提示ORA-28002警告的账号不会再遇到同样的提示;已提示的账号必须重新修改密码,例如:$sqlplus/assysdbasql>alterusersmscidentifiedby----no无论oracle11g启动参数resource_limit是否设置为false或true为新密码,密码有效期有效,必须通过以上方法修改。请根据您实际使用的账户名更改上述账户名。对于原因2--->1.检查用户的配置文件,通常默认为:sql>SELECTusername,PROFILEFROMdba_users;2、查看指定profile的密码有效期设置(如default):sql>SELECT*FROMdba_profilesWHEREs.profile='DEFAULT'ANDresource_name='FAILED_LOGIN_ATTEMPTS';3、将登录尝试失败次数由默认的10次改为“***”:sql>ALTERPROFILEDEFAULTLIMITFAILED_LOGIN_ATTEMPTSUNLIMITED;4、修改后没有提示ORA-28000警告的用户不会再遇到同样的提示;被锁定的账户必须解锁,例如:$sqlplus/assysdbasql>alterusersmscidentifiedbyoracleaccountunlock;5、修改后的defaultprofile应该如下:sql>select*fromdba_profilesWHEREdba_profiles.profile='DEFAULT';*****************************************************************************************************************备注:修改后无需重启数据库,即可生效立即地;如果ORA-28000帐户被锁定。错误sql>alteruserusernameaccountunlock;