oracle主要通过PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX这两个参数来对密码重用进行限制。
假如我use的密码是use,
当我alter user use identified by newpd,将密码改成了newpd,之后我又想改回原来的密码。
当我执行alter user use identified by use后,就会报ORA-28007: the password cannot be reused这个错误。
首先我以sys账号登录数据库,查找这两个参数的值:
select * from dba_profiles where resource_name like 'PASSWORD_REUSE_%';
查出来PASSWORD_REUSE_TIME=1800,PASSWORD_REUSE_MAX=UNLIMITED,意思就是要1800天后我才能改回原来的密码,这样肯定是不现实的,那么接下来我就要对这个参数进行修改,语句如下:
alter profile default limit password_reuse_time unlimited;
之后再执行alter user use identified by use后就可以了。
注:如果修改密码导致数据库账号被锁,只需要以sys用户登录,然后执行alter user use account unlock即可。