如何在不修改原密码的情况下,解决180天和7天限制。(多用户一次性修改)
SQL> alter profile default limit PASSWORD_LIFE_TIME unlimited PASSWORD_GRACE_TIME unlimited;
Profile altered.
另外,确认以下当前数据库是否用户都使用的是默认的profile
评论
有用 0谢谢专家,是我问题没描述清楚。
目前已经自行解决,共享给有需要的人。
select 'alter user '||name||' identified by values '''||u.PASSWORD||''';' from user$ u,dba_users d where d.account_status like '%GRACE%' and u.name=d.username;
执行脚本即可获得所有已过期用户,并直接执行生成的修改脚本。
评论
有用 0既然都访问USER$,何必再关联DBA_USERS?
SQL改为:
select 'alter user '||name||' identified by values '''||u.PASSWORD||''';' from user$ u where astatus in (2, 6, 10);
上面的这个SQL是和你的SQL等价的,但是我觉得你应该改成:
select 'alter user '||name||' identified by values '''||u.PASSWORD||''';' from user$ u where astatus in (2, 4, 5, 6, 9, 10);
关于astaus的含义:
STATUS# STATUS
---------- ----------------------------------------------------------------
0 OPEN
1 EXPIRED
2 EXPIRED(GRACE)
4 LOCKED(TIMED)
8 LOCKED
5 EXPIRED & LOCKED(TIMED)
6 EXPIRED(GRACE) & LOCKED(TIMED)
9 EXPIRED & LOCKED
10 EXPIRED(GRACE) & LOCKED
评论
有用 0
墨值悬赏

