症状与原因
11G数据安装成功了,也配置上线了,用的好好的,溜溜的,可是突然系统登录不上去,提示用户密码过期,这是怎么回事呢?这是Oracle11G默认的安全策略,创建用户时给每个用户使用了概要文件,也就是默认配置文件,这个默认配置文件里有设置密码的有效时间,默认是180天,也就是半年。不要慌张,下面我们看看这个概要文件是个啥。
查询概要文件
select * from sys.dba_profiles;
注意红框部分,密码的有效期也就是生存期是180天。当密码使用180天后密码过期后,除sys用户外的其它用户无法登录数据库,如果经常登录数据库会有7天开始倒计时的提示!
解决办法
既然是配置的概要文件有问题,那就改改吧,两种办法,一个是增加天数,一个是密码永久有效,推荐后者,现在的数据库大多是应用程序访问,所以谁也不想经常改动这个。
修改步骤
1、查看用户的proifle是哪个,一般是default:
SELECT username,PROFILE FROM dba_users where username='SYSTEM';
2、查看指定概要文件(如default)的密码有效期设置:
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT';
3、将密码有效期由默认的180天修改成"无限期":
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
注意是立即生效
4、修改后,用户密码还是登录不了,密码还是无效,再赋值一遍原始密码即可。
alter user system identified by <原来的密码> ----不用换新密码
5、如果已经有用户已经是lock状态,那就是解锁,查看用户状态的语句如下
如果有用户被锁住,请解锁用户
alter user system account unlock;