暂无图片
分享
2019-04-23
11g PASSWORD_VERIFY_FUNCTION

如何在不修改原密码的情况下,解决180天和7天限制。(多用户一次性修改)

收藏
分享
5条回答
默认
最新
杨廷琨

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

thank u

暂无图片 评论
暂无图片 有用 0
章芋文
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏