在oracle数据库中,新建的用户有一个密码过期重置的功能,如果当时新建的时候勾选了这个选项,那么到了截至时期时,就会提前报警,如果已经超过了该日期,该用户就被锁定,从而无法登录进数据库。针对这个问题,我们来如何操作:
分两种情况
1.还未过期,只是报警,用户还未锁定
这种情况很简单,就是根据提示,输入新密码就可以了
2.已经过期,用户已被锁定
这种情况比较复杂,用户已经锁定,登录不了,这个时候你需要用另一个DBA的用户登录进去,然后修改已被锁定用户的密码,之后退出重新登录就可以了
以上两种情况执行成功后,该用户就可以正常使用了,但有个问题是,密码过期验证依然有效,也即过一段时间之后,还得重复上面的步骤;
如果想取消掉这个功能,需要下面的操作:
1.查看用户的profile
select username,profile from dba_users;
通常情况下是 :DEFAULT;
2.查看密码过期验证值
select * from dba_profiles s where s.profile='DEFAULT' AND s.resource_name='PASSWORD_LIFE_TIME';
通常是180等具体的值
3.取消密码验证功能,改变上面查询出来的值,改成 UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
好了,执行完之后立即有效,之后就不会对密码进行过期验证了