oracle 12c 密码有效期
今天以system用户登陆一个oracle 12c的测试数据库时,提示密码过期:
此时没有出现修改密码的提示!
在服务器上通过sqlplus工具访问提示修改密码:
这里先不修改密码。
检查用sys用户以sysdba身份登陆数据库,查看此时的dba_users视图:
可以看到system用户状态已过期。
查看DEFAULT配置文件中对密码的配置:
可以看到,默认的配置允许用户尝试输入密码10次(FAILED_LOGIN_ATTEMPTS),连续输入10次后还是错误的话,oracle会锁账号1天(PASSWORD_LOCK_TIME)。密码有效期是180天(PASSWORD_LIFE_TIME),到期前7天(PASSWORD_GRACE_TIME)oracle会提示用户修改密码。
这时通过sqlplus工具更改system用户的密码:
然后再次查看dba_users视图:
可以看到,system用户的状态已恢复为OPEN,失效日期更新为2018/08/27 11:45:46。
由此可知,如果一个oracle数据库用户的密码被设置了有效期,那么,在重置了密码后oracle会自动更新密码下一次的失效日期。DBA需要关注用户密码的失效日期,保证用户的状态。
另外,经过测试发现,oracle 12c中,cdb和pdb之间的配置文件(profile)是相互独立的,需要分别设置,例如:profile中PASSWORD_LIFE_TIME的limit默认都是180天的有效期,我们可以将cdb中的system密码设置为360天的有效期,pdb中的system密码设置成无限期。