概述
今天主要介绍两个密码重用参数,Oracle 11gR2版本官方解释如下:
PASSWORD_REUSE_TIME and PASSWORD_REUSE_MAX These two parameters must be set in conjunction with each other. PASSWORD_REUSE_TIME specifies the number of days before which a password cannot be reused. PASSWORD_REUSE_MAX specifies the number of password changes required before the current password can be reused. For these parameter to have any effect, you must specify a value for both of them.
PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX
从11g开始,这两个参数必须同时修改才生效。
PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX:这两个参数必须互相关联设置,password_reuse_time指定了密码不能重用前的天数,而password_reuse_max则指定了当前密码被重用之前密码改变的次数。
总结两者之间的规律:
(1)PASSWORD_REUSE_MAX,PASSWORD_REUSE_TIME都为UNLIMITED,密码可以随意重用,没有任何限制。
(2)PASSWORD_REUSE_MAX,PASSWORD_REUSE_TIME均为指定值时,必须满足这两者的条件时才可以重用密码。
(3)当PASSWORD_REUSE_MAX,PASSWORD_REUSE_TIME两个有其中一个不为UNLIMITED,则密码永远不能重用。
实验--验证PASSWORD_REUSE_TIME and PASSWORD_REUSE_MAX
1、环境准备
测试环境: 11.2.0.3.0
测试用户:SCOTT
测试用的三组密码:oracle1 oracle2 oracle3
确认SCOTT使用的DEFAULT profile
SQL> select USERNAME from dba_users where PROFILE='DEFAULT' and USERNAME='SCOTT';
2、PASSWORD_REUSE_TIME,PASSWORD_REUSE_MAX值均为UNLIMITED
SQL> select profile,limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_REUSE_TIME';
SQL> select profile,limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_REUSE_MAX';
SQL> alter user scott identified by oracle;
可以发现,用户密码可以不受限制的重用
3、PASSWORD_REUSE_TIME,PASSWORD_REUSE_MAX值均不为UNLIMITED
这里设定PASSWORD_REUSE_TIME 1/1440表示一分钟后可以重用,PASSWORD_REUSE_MAX 1表示密码更新过一次即可重用。
SQL> alter profile default limit password_reuse_max 1; SQL> alter profile default limit password_reuse_time 1/1440;
SQL> alter user scott identified by oracle1; SQL> select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') as a from dual; SQL> alter user scott identified by oracle; SQL> select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') as a from dual;
间隔不足一分钟,更改提示失败
过了很久用之前的密码更改,提示失败
由上面的实验,可以看出,PASSWORD_REUSE_TIME,PASSWORD_REUSE_MAX值均不为UNLIMITED,必须同时满足这两个条件才可以更改密码。
4、PASSWORD_REUSE_TIME 为UNLIMITED,PASSWORD_REUSE_MAX为1
SQL> alter profile default limit password_reuse_time unlimited;
SQL> alter user scott identified by oracle2;
由此可以看出,当PASSWORD_REUSE_TIME 为UNLIMITED,PASSWORD_REUSE_MAX为指定值,密码在任何时候都不可以重用。
5、PASSWORD_REUSE_MAX 为UNLIMITED,PASSWORD_REUSE_TIME为1/1440。
SQL> alter profile default limit password_reuse_time 1/1440; SQL> alter profile default limit password_reuse_max unlimited;
SQL> alter user scott identified by oracle; SQL> select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') as a from dual;
从上面的实验可以看出,当PASSWORD_REUSE_MAX为UNLIMITED,PASSWORD_REUSE_TIME为指定值,密码在任何时候都不可以重用
“实验"是检验Oracle官方文档的唯一也是最好的手段,Oracle官方文档是可信的,不过同样需要我们去一一验证。
.最后一点还是用这句古话与大家共勉:纸上得来终觉浅,绝知此事要躬行!
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~