重置账号密码延长有效期限

实际运维中,一方面是安全要求必须配置密码有效期限,比如超过3个月必须修改密码,另一面是应用的7*24可用性要求,不可能真的停应用修改账号密码,故经常使用这种“假”的修改密码的方式,来延长密码的有限期,同时不需要知道账号的密码也可以操作。

注意:本方法会将10g&11g密码安全性降到10g标准,并暂不支持11g only情况

set serverout on
declare
v_username varchar2(100) :='DBSNMP';
v_expiry_date date;
v_password_value varchar2(100) ;
begin
SELECT U1.expiry_date,U2.PASSWORD into v_expiry_date,v_password_value FROM DBA_USERS U1,SYS.USER$ U2 WHERE U1.USERNAME=U2.NAME AND U2.NAME=v_username;
dbms_output.put_line('username: '||v_username||' expiry_date: '||to_char(v_expiry_date,'yyyy-mm-dd hh24:mi:ss')||', password_value: '||v_password_value);
dbms_output.put_line('alter user '||v_username||' identified by values '''||v_password_value||'''');
execute immediate 'alter user '||v_username||' identified by values '''||v_password_value||'''';
dbms_output.put_line('--------------------------------------');
SELECT U1.expiry_date,U2.PASSWORD into v_expiry_date,v_password_value FROM DBA_USERS U1,SYS.USER$ U2 WHERE U1.USERNAME=U2.NAME AND U2.NAME=v_username;
dbms_output.put_line('username: '||v_username||' expiry_date: '||to_char(v_expiry_date,'yyyy-mm-dd hh24:mi:ss')||', password_value: '||v_password_value);
end;

  

posted @ 2019-10-28 14:39  Leadx·Wu  阅读(331)  评论(0)    收藏  举报