当前位置:   article > 正文

Oracle用户密码过期和用户被锁的解决方法_oracle 用户过期解除

oracle 用户过期解除
Oracle用户密码过期和用户被锁的解决方法
 
产生原因:

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

1、查看用户的proifle是哪个,一般是default:
SELECT username,PROFILE FROM dba_users where username="&USERNAME";
 
2、查看指定概要文件(如default)的密码有效期设置:
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
 
select a.username,a.profile,a.account_status from dba_users a, dba_profiles b where a.profile=b.profile and b.resource_name='PASSWORD_LIFE_TIME';
 
3、将密码有效期由默认的180天修改成“无限制”:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
 
NOTE:修改之后不需要重启动数据库,会立即生效; 修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;已经被提示的帐户必须再改一次密码(可修改为原密码)
 
4、查看默认宽限时间:
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_GRACE_TIME';
 
5、修改默认宽限期限为无限(可不设置):
ALTER PROFILE DEFAULT LIMIT PASSWORD_GRACE_TIME UNLIMITED;
 
6、查看过期用户的相关信息:
select a.username,a.profile,a.account_status,a.EXPIRY_DATE from dba_users a, dba_profiles b where a.profile=b.profile and b.resource_name='PASSWORD_LIFE_TIME' and ACCOUNT_STATUS in ('EXPIRED(GRACE)','EXPIRED');
 
dba_profiles相关参数详解

SQL> SELECT * FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME LIKE 'PASSWORD%';
 
PROFILE                            RESOURCE_NAME                                        RESOURCE LIMIT
-------------------- -------------------------------- -------- ----------------------------------------
DEFAULT                            PASSWORD_LIFE_TIME                             PASSWORD 180
DEFAULT                            PASSWORD_REUSE_TIME                            PASSWORD UNLIMITED
DEFAULT                            PASSWORD_REUSE_MAX                             PASSWORD UNLIMITED
DEFAULT                            PASSWORD_VERIFY_FUNCTION                 PASSWORD NULL
DEFAULT                            PASSWORD_LOCK_TIME                             PASSWORD 1
DEFAULT                            PASSWORD_GRACE_TIME                            PASSWORD 7
 
解释如下:
FAILED_LOGIN_ATTEMPTS:整数设定登录到Oracle 数据库时可以失败的次数。一旦某用户尝试登录数据库的达到该值时,该用户的帐户就被锁定,只能由DBA能解锁。
PASSWORD_LIFE_TIME:设定口令的有效时间(天数),一旦超过这一时间,必须重新设口令。缺省为UNLIMITED.
PASSWORD_REUSE_TIME:许多系统不许用户重新启用过去用过的口令。该资源项设定了一个失效口令要经过多少天,用户才可以重新使用该口令。缺省为UNLIMITED.
PASSWORD_REUSE_MAX:重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数)。
PASSWORD_LOCK_TIME:设定帐户被锁定的天数(当登录失败达到FAILED_LOGIN_ATTEMPTS时)。
PASSWORD_GRACE_TIME:设定在口令失效前,给予的重新设该口令的宽限天。当口令失效之后回,在登录时会出现警告信息显示该天数。如果没有在宽限天内修改口令,口令将失效。                        
PASSWORD_VERITY_FUNCTION:该资源项允许调用一个PL/SQL 来验证口令。Oracle公司已提供该应用 的脚本,但是只要愿意的话,用户可以制定自己的验证脚本。该参数的设定就是PL/SQL函数的名称。缺省为NULL.
 
用户状态详解

五种基本状态可分为三类:
  • 正常状态;
  • 锁定状态;
  • 密码过期状态。
1、OPEN状态表示用户处于正常状态。
2、LOCKED和LOCKED(TIMED)表示用户被锁定状态。有如下两种情况:
  • DBA显式的通过SQL语句对用户进行锁定;
  • 被动的锁定,默认情况下如果密码输入错误超过10次锁定;
该限制由PROFILE中的FAILED_LOGIN_ATTEMPTS控制,可查看视图DBA_PROFILES。
DBA显式锁定用户LOCKED
  alter user [username] account lock;
输入10次错误密码后被动锁定LOCKED(TIMED), 这个限制是由PROFILE中的FAILED_LOGIN_ATTEMPTS控制的,该信息可以通过DBA_PROFILES视图查询
3、EXPIRED和EXPIRED(GRACE)表示用户密码过期状态。
  修改PROFILE中的PASSWORD_LIFE_TIME实现密码是否过期
    alter profile default limit password_life_time unlimited;
  密码过期后也可修改PROFILE中的PASSWORD_GRACE_TIME控制使用的天数:
    alter profile default limit password_grece_time 180;
  对于密码过期的用户OPEN:
    alter user [username] identified by <password> account unlock;
 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/719346
推荐阅读
相关标签
  

闽ICP备14008679号