客户反馈Oracle数据库用户密ma会过期,为了避免过期导致应用连接出错,可提前cha找即将过期的用户,重置密ma。步骤如下:
1、查看未来20天内是否会有密ma过期
set lines 200 col username for a20 select USERNAME,to_char(EXPIRY_DATE,'yyyy-mm-dd hh24:mi:ss') expire_time,profile,account_status from dba_users a where EXPIRY_DATEsysdate and account_status='OPEN';
2、查看过期用户
set lines 200 col profile for a20 col username for a20 select USERNAME,to_char(EXPIRY_DATE,'yyyy-mm-dd hh24:mi:ss'),profile,account_status from dba_users where account_status='EXPIRED' or account_status='EXPIRED(GRACE)' order by EXPIRY_DATE ;
3、查看open状态用户的过期时间
set lines 200 col profile for a20 col username for a20 select USERNAME,to_char(EXPIRY_DATE,'yyyy-mm-dd hh24:mi:ss'),profile,account_status from dba_users where account_status='OPEN' order by EXPIRY_DATE ;
4、查看所有用户状态
set lines 200 col profile for a20 col username for a20 select USERNAME,to_char(EXPIRY_DATE,'yyyy-mm-dd hh24:mi:ss'),profile,account_status from dba_users order by EXPIRY_DATE ;
5、进行密ma重置
修改profile设置
alter profile PROFILE_NAME limit password_reuse_time unlimited password_reuse_max unlimited;
生成重置命令
select 'alter user '||du.username||' identified by values '||''''||u.password||''''||';' from dba_users du,user$ u where du.username=u.name and u.type#=1 and du.profile in('PROFILE_NAME') and du.username<>'XS$NULL' and du.expiry_date-sysdate<=30;
修改profile设置
alter profile PROFILE_PRODUCT limit password_reuse_time 60 password_reuse_max 5;