Oracle用户密码过时和用户被锁解决方法

       今天正在上班的过程当中,客户反映了他们的系统登陆不了,通过个人一番检查,发现是由于数据库密码过时致使的,在网上查找相关资料发现还真有此种状况发生,在此顺便作了个整理,以便共同交流!sql

产生缘由:数据库

  1. 在oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所致使。
  2. 在oracle11g中默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将致使此问题。

解决办法: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;

相关文章
相关标签/搜索