今天正在上班的过程当中,客户反映了他们的系统登陆不了,通过个人一番检查,发现是由于数据库密码过时致使的,在网上查找相关资料发现还真有此种状况发生,在此顺便作了个整理,以便共同交流!sql
产生缘由:数据库
解决办法:oracle
针对缘由1--->ide
一、查看用户的proifle是哪一个,通常是default:spa
sql>SELECT username,PROFILE FROM dba_users;it
二、查看指定概要文件(如default)的密码有效期设置:登录
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';file
三、将密码有效期由默认的180天修改为“无限制”:select
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;密码
备注:修改以后不须要重启动数据库,会当即生效;
修改后,尚未被提示ORA-28002警告的账户不会再碰到一样的提示;已经被提示的账户必须再改一次密码,举例以下:
$sqlplus / as sysdba
sql> alter user smsc identified by <原来的密码> ----不用换新密码
oracle11g启动参数resource_limit不管设置为false仍是true,密码有效期都是生效的,因此必须经过以上方式进行修改。以上的账户名请根据实际使用的账户名更改。
针对缘由2--->
一、查看用户的proifle是哪一个,通常是default:
sql>SELECT username,PROFILE FROM dba_users;
二、查看指定概要文件(如default)的密码有效期设置:
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='FAILED_LOGIN_ATTEMPTS';
三、将尝试登陆失败次数由默认的10次修改为“无限制”:
sql>ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
四、修改后,尚未被提示ORA-28000警告的用户不会再碰到一样的提示;
已经被锁定的账户必须解除锁定,举例以下:
$sqlplus / as sysdba
sql> alter user smsc identified by oracle account unlock;
五、修改后default profile应该以下:
sql> select * from dba_profiles WHERE dba_profiles.profile='DEFAULT';
********************************************************************************************************
备注:修改以后不须要重启动数据库,会当即生效;
若是出现ORA-28000 the account is locked.错误
sql>alter user 用户名 account unlock;