70.Oracle11g/Oracle19C数据库密码过期问题处理

1.oracle11G密码过期问题处理

--针对Oracle11g密码过期问题处理
--生产密码过期时间小于30天的用户的密码修改语句。

 select ' alter user ' || name ||' identified by values '''||password ||''';' AS reset_password from sys.user$
 where name in (select username from dba_users
 where ACCOUNT_STATUS<>'LOCK' and ACCOUNT_STATUS not like 'EXPIRED%LOCKED'
 and EXPIRY_DATE-sysdate<30) 
 ;

2.针对Oracle 19C密码过期问题处理;

Oracle19C 
自定义用户的密码保存字段是:sys.user$.SPARE4,过期时间字段是:sys.user$.EXPTIME,
密码的修改时间:sys.user$.PTIME,系统自带的用户的密码过期时间为空,即不过期。
修改密码后,密码的过期时间变为空。至于什么时候密码变为非空,暂不确定。
 

--查看密码过期时间
conn / as sysdba
set linesize 150
col username for  a35
col name for a20
col PROFILE for a30
col ACCOUNT_STATUS for a20
select  c.CON_ID,v.name,c.username,c.account_status,c.expiry_date, trunc(c.expiry_date - sysdate)  erpiry ,c.profile
from  cdb_users c, v$containers v
where c.ACCOUNT_STATUS not  like 'EXPIRED%' and c.ACCOUNT_STATUS not  like 'LOCKED%'
and c.expiry_date is not null
and trunc(c.expiry_date - sysdate)<30
order by 2;



--查询30天内将过期的用户,并生成修改密码的语句。
col username for a30;
set lin 300;
select ' alter user ' || name ||' identified by values '''||SPARE4||''';' AS reset_password from sys.user$
where name in (select username from dba_users
where ACCOUNT_STATUS<>'LOCK' and ACCOUNT_STATUS not like 'EXPIRED%LOCKED')
and EXPTIME is not null
and EXPTIME-sysdate<30;


--更改密码,更改后,密码过期时间:sys.user$.EXPTIME 字段自动更改为空。
 alter user DBAMONITOR identified by values 'S:EFCBE4FD7206CB031EB87B4C2A2E06FDDAF96D683266E6447EC44DC7583D;T:D167D8298092E169A54995D9AA28EBB0FCA969773CF40F3F5BD1D03F51F220967525BFA6A4316E5B23101FA0B1AF14730FA83E1E89617250E37BB6763664E2E8F15D617E4D0466D00A6AA44CB92BECE9';

3.总结

oracle11g和oracle19c的密码管理相关的字段有所变更,如果需要定期修改密码,则需要注意这个差异。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值