以下是指对oracle 10g
–先查密码是否过期
select b.username 用户名 ,b.profile ,b.account_status 状态, b.created 创建日期,a.ptime 设置日期,b.lock_date 锁定日期,b.expiry_date 密码过期时限 from (select * from sys.user$) a, (select * from dba_users) b where a.name = b.username and account_status=\’OPEN\’

–执行前先检查系统参数
select PROFILE, RESOURCE_NAME, LIMIT
  from dba_profiles
 where RESOURCE_NAME in (\’PASSWORD_LIFE_TIME\’,
                         \’PASSWORD_GRACE_TIME\’,
                         \’PASSWORD_REUSE_MAX\’,
                         \’PASSWORD_LOCK_TIME\’,
                         \’FAILED_LOGIN_ATTEMPTS\’,
                         \’PASSWORD_VERIFY_FUNCTION\’)
 order by 1

先修改为无限制  
alter profile DEFAULT limit PASSWORD_REUSE_MAX UNLIMITED;
alter profile DEFAULT limit PASSWORD_REUSE_TIME UNLIMITED;

–alter user sys identified by jmpsbxxb
alter user system identified by jmpsbxxb
alter profile DEFAULT limit PASSWORD_REUSE_MAX UNLIMITED;
alter profile DEFAULT limit PASSWORD_REUSE_TIME UNLIMITED;


–执行以下脚本生成修改脚本,

select \’alter user \’|| username ||\’ identified by values \’\’\’||password ||\’\’\’;\’ from dba_users

where ACCOUNT_STATUS<>\’LOCKED\’ and ACCOUNT_STATUS not like \’EXPIRED%LOCKED\’;

–再执行上面生成的脚本,

–alter user SUP_FLEX identified by values \’96679A1E6C027EAF\’;

–再修改为有限制
alter profile DEFAULT limit PASSWORD_REUSE_TIME 5; 
alter profile DEFAULT limit PASSWORD_REUSE_MAX 5;

oracle 11g

select name,password from sys.user$ where name in (select username from dba_users);
事实上dba_users就是结合user$等相关基表创建的视图
从dba_uses视图的相关语句可以看出当用户被创建为全局或外部认证时password才有加密值,而10g中dba_users的password列完全取值与user$的password列值

版权声明:本文为dennymami原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dennymami/p/5652232.html