我有一个用户在 oracle db 中有一个默认配置文件。我想重现以下警告错误:ORA-28002:密码将在 X 天内过期
在 dba_profile 中,我设置了以下值。
FAILED_LOGIN_ATTEMPTS PASSWORD 10
PASSWORD_LIFE_TIME PASSWORD 1
PASSWORD_REUSE_TIME PASSWORD UNLIMITED
PASSWORD_REUSE_MAX PASSWORD 1
PASSWORD_VERIFY_FUNCTION PASSWORD NULL
PASSWORD_LOCK_TIME PASSWORD 1
PASSWORD_GRACE_TIME PASSWORD 1
Run Code Online (Sandbox Code Playgroud)
但是,通过使用上述值,我可以为系统用户生成 ORA-28002 错误。但对于 CUSUSER 用户,它不会给出此错误。
当我查看 dba_users 表时,它显示以下值。
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
CUSUSER OPEN
SYSTEM EXPIRED(GRACE)
Run Code Online (Sandbox Code Playgroud)
我无法将 CUSUSER 的 account_status 更新为 EXPIRED(GRACE)
请任何人让我知道我将如何为 CUSUSER 重现此错误。
根据此处的 Oracle 文档(请参阅标题将 PASSWORD_LIFE_TIME 配置文件参数设置为低值),当您更改为低值时OPEN,EXPIRED(GRACE)如果用户当前已登录,则帐户状态将从更改PASSWORD_LIFE_TIME为 。我猜您在更改PASSWORD_LIFE_TIME. 尝试以 CUSUSER 身份登录,然后更改它。
以下方法会将用户的帐户状态设置为 EXPIRED(GRACE):
create profile EXPTESTPROF limit
failed_login_attempts 1
password_life_time 1/24/60/60
password_reuse_time unlimited
password_reuse_max 1
password_verify_function null
password_lock_time 1
password_grace_time 1;
create user EXPTEST identified by EXPTEST;
alter user EXPTEST profile EXPTESTPROF;
grant "CONNECT" to EXPTEST;
Run Code Online (Sandbox Code Playgroud)
然后以 EXPTEST 身份登录。您将收到密码将在 1 天内过期的消息。如果您现在检查 ACCOUNT_STATUS,它应该显示 EXPIRED(GRACE):
select ACCOUNT_STATUS
from DBA_USERS
where USERNAME = 'EXPTEST'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3562 次 |
| 最近记录: |