用户有效期及登录失败后账户被锁

现象:在oracle11g中创建用户后,查看dba_users,发现有效期只有半年;另外,如果登录输入错误密码、且连续10次输入出错,则此用户也被锁定。
Brqeqy
select * from dbs_users where username = 'RES'
出现上述现象的原因,都跟用户的profile(由上述步骤可知其使用的PROFILE为DEFAULT)有关。解决的办法是修改这个profile的相关属性。

以system用户身份登录数据库,执行以下脚本:
select * from dba_profiles where profile='DEFAULT';
截图如下,请注意其RESOURCE_NAME值为PASSWORD_LIFE_TIME那一行的LIMIT值为180。这就是有效期为半年的问题所在;而值为FAILED_LOGIN_ATTEMPTS那一行的LIMIT值为10,就是连续错误10次即锁定的原因所在。
VvE3aq

修改profile的属性
用system身份执行如下语句:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
然后,重新查询PROFILE的属性,发现修改已经生效。截图如下:
3u2mM3

修改用户的属性
上述操作完成以后,是不是使用到对应PROFILE(在本例中其值为DEFAULT)的用户它们的有效期就立即被延长了?回答是要分两种情况:
●对未被提示ORA-28002告警的用户,上述修改立即生效;
●对于已经收到ORA-28002告警的用户,需要修改一下口令,之后其有效期就会使用对应的PROFILE的设置了(操作示例略)。
本例中通过查看dba_users可以发现,先前有效为半年的那些用户,其有效期已被清空(即为无限期)。截图如下:
执行查询语句:select * from dba_users where account_status='OPEN';
maUNVb