如何将Oracle用户帐户状态从“到期(GRACE)”更改为“打开”?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

得到消息后Your password will be expired with in 7 days,我将default配置文件的密码过期天数更改为UNLIMITED。但一些用户的账户状态仍然存在EXPIRE(GRACE)

任何方式来更改Oracle用户帐户状态, EXPIRE(GRACE)OPEN无需重置密码?

提问于
用户回答回答于

为了阻止将来发生这种情况,请执行以下操作。

  • 以sysdba身份登录到sqlplus - > sqlplus“/ as sysdba”
  • 执行 - >ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED;

要重置用户的状态,请运行查询:

select
'alter user ' || su.name || ' identified by values'
   || ' ''' || spare4 || ';'    || su.password || ''';'
from sys.user$ su 
join dba_users du on ACCOUNT_STATUS like 'EXPIRED%' and su.name = du.username;

并执行部分或全部结果集。

用户回答回答于

不,你不能在不重置密码的情况下将帐户状态从EXPIRE(GRACE)更改为OPEN。

文件说:

如果导致数据库用户的密码以PASSWORD EXPIRE过期,则用户(或DBA)必须更改密码,然后才能在过期后尝试登录数据库。

但是,你可以通过将用户密码重置为相同的值将状态更改为OPEN。

根据你的版本和设置,其中一个查询可能会为你提供密码哈希值:

select spare4 from sys.user$ where name='[user name]';
select password from dba_users where username = '[user name]';

然后使用它来重置它:

alter user [user name] identified by values '[result from above query]';

扫码关注云+社区