【问题标题】:Change Oracle User Password Expiry Date更改 Oracle 用户密码到期日期
【发布时间】:2017-03-10 17:08:25
【问题描述】:

我已经获得了 oracle 用户密码到期日期,

Select Expiry_date from USER_USERS;

我想在密码即将到期时发出警告消息。

目前我的密码不会很快过期。我想将到期日期更改为之前的日期,以便我可以测试我的代码。

我的用户帐户密码即将过期。即我想得到ORA-28002 ERROR。

我尝试使用 alter user XYZ password expire;

这会将我的用户 ACCOUNT_STATUS 设置为 EXPIRED 状态,但我希望它处于 EXPIRED(GRACE) 状态。

请提出任何可能的方法。

【问题讨论】:

  • 更改附加到该用户的个人资料。您可以将PASSWORD_LIFE_TIME 设置为一个较短的值(甚至可以设置为秒)。
  • 我已经做到了,但它没有进入EXPIRED(GRACE) state @WernfriedDomscheit
  • 您是否以该用户身份登录?否则状态不会更新。

标签: database oracle


【解决方案1】:

您必须像这样创建一个新的用户个人资料(或更改现有的个人资料):

CREATE PROFILE SHORT_LIFE_PROFILE LIMIT
    PASSWORD_LIFE_TIME 1/24/60/60 --> = 1 second
    PASSWORD_GRACE_TIME 1/24; --> = 1 hour

ALTER USER rdj7 PROFILE SHORT_LIFE_PROFILE;

要获得ACCOUNT_STATUS = EXPIRED(GRACE),您必须使用此用户登录,否则状态不会改变。

C:\>sqlplus rdj7/*****@yourDB

SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 10 10:09:29 2017

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-28002: the password will expire within 0 days

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning option

SQL>

那么你应该会看到它:

SELECT ACCOUNT_STATUS 
FROM DBA_USERS 
WHERE USERNAME = 'RDJ7';

ACCOUNT_STATUS                  
--------------------------------
EXPIRED(GRACE)     

1 row selected.

【讨论】:

  • 典型的 Oracle,让我们以复杂的方式来做吧。甲骨文为什么这样做有什么原因吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-20
  • 1970-01-01
  • 2013-10-24
相关资源
最近更新 更多