问题:sql
登录,就报口令还有7天就到期了,因为用户太多,有上1000个,可否不修改口令,经过dba统一修改?oracle
下面模拟一下场景:操作系统
1.先肯定一下环境:server
db版本:it
SQL> select * from v$version;io
BANNERdate
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Productionfile
PL/SQL Release 11.2.0.4.0 - Productionselect
CORE 11.2.0.4.0 Productionim
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
日期时间:
[oracle@dbserver ~]$ date
Thu Jan 9 18:03:39 CST 2014
口令到期时间:
SQL> select resource_name,limit from dba_profiles where profile='DEFAULT' and RESOURCE_NAME='PASSWORD_LIFE_TIME';
RESOURCE_NAME LIMIT
PASSWORD_LIFE_TIME 180
用户状态:
SQL> select username,ACCOUNT_STATUS,EXPIRY_DATE from dba_users where username='HR';
USERNAME ACCOUNT_STATUS EXPIRY_DA
---------
HR OPEN 08-JUL-14
经过以上,咱们看到目前hr用户的到期时间为 2014-7-08号
SQL> select resource_name,limit from dba_profiles where profile='DEFAULT' and RESOURCE_NAME='PASSWORD_GRACE_TIME';
RESOURCE_NAME LIMIT
PASSWORD_GRACE_TIME 7
接下来,咱们修改操做系统时间为7月9号
2.修改操做系统时间为7月9号
[root@dbserver ~]# date -s '2014-07-09 18:09'
Wed Jul 9 18:09:00 CST 2014
[root@dbserver ~]# date
Wed Jul 9 18:09:01 CST 2014
[root@dbserver ~]#
如今看看hr的状态
[oracle@dbserver ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on Wed Jul 9 18:10:02 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> select username,ACCOUNT_STATUS,EXPIRY_DATE from dba_users where username='HR';
USERNAME ACCOUNT_STATUS EXPIRY_DA
---------
HR OPEN 08-JUL-14
SQL>
你们看到 hr的到期时间还为 08-jul-14
3.登录hr
SQL> conn hr/hr
ERROR:
ORA-28002: the password will expire within 7 days
Connected.
SQL>
一登录,就提示还有7天就过时
看看状态
SQL> conn / as sysdba
Connected.
SQL> select username,ACCOUNT_STATUS,EXPIRY_DATE from dba_users where username='HR';
USERNAME ACCOUNT_STATUS EXPIRY_DA
---------
HR EXPIRED(GRACE) 16-JUL-14
SQL>
能够看到,这个account状态,只有在登录时,才会变化.不登录,就不会变化.
你们看到,hr的用户的状态已经变成 expired(grace)状态了
在7天之内hr登录,都会提示这个 ora-28002的提示,不影响使用,但到 16-JUL-14 后,若是口令还不到期,这个用户就要被锁定