我使用
获得了oracle用户密码到期日期 Select Expiry_date from USER_USERS;
我想在密码即将过期时发出警告消息。
目前我的密码不会很快到期。我想将到期日期更改为之前的日期,以便我可以测试我的代码。
我的用户帐户密码应该即将过期。即我想获得ORA-28002
错误。
我尝试过使用
alter user XYZ password expire;
这会将我的用户ACCOUNT_STATUS
设置为EXPIRED
州,但我希望它处于EXPIRED(GRACE)
状态。
请建议任何可能的方法。
答案 0 :(得分:3)
您必须创建一个新的用户配置文件(或更改现有配置文件),如下所示:
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.