我正在调查oracle数据库11gR2,以验证过期天数到达7天以下的用户,我注意到今天有几个用户到期日但是他们的帐户状态是开放而不是过期( Grace)和一些用户通过了有效期但仍处于开放状态。
USERNAME ACCOUNT_STATUS EXPIRY_DA PROFILE
------------------------------ -------------------------------- --------- ------------------------------
SYSTEM OPEN 27-JAN-16 DEFAULT
SYS OPEN 28-DEC-14 DEFAULT
ERERD OPEN 18-JAN-16 DEFAULT
ERFWSE OPEN 04-DEC-14 DEFAULT
SERFW OPEN 03-AUG-15 DEFAULT
DERSZFERSS OPEN 04-DEC-14 DEFAULT
在这种情况下,我的查询无法找到帐户过期的用户。任何人都可以帮我修改查询这样一种方式,它只会列出用户和他们的帐户真正将到期天数?
select username, account_status, trunc(expiry_date-sysdate) days_to_expire
from dba_users
where expiry_date is not null and trunc(expiry_date-sysdate) >= 0;
SQL> select * from dba_profiles where profile = 'DEFAULT' and resource_name = 'PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD 180
答案 0 :(得分:1)
您的查询没问题。
密码到期日期和帐户状态是不同的。
您可以让一个过期的密码用户在您尝试连接时保持打开状态
如果您有权更改密码,则可以设置新密码,
否则用户将被锁定。
这意味着如果您与应用程序连接且应用程序未检查密码到期日期,则用户将被锁定 如果没有连接,用户将保持打开状态。
答案 1 :(得分:1)
没有任何流程通过帐户重置其到期日期的状态。用户下次登录时状态将相应更新 ~~~ H Otati