早上刚进办公室,同事找我说HR的Oracle中间库密码过期登陆不上了,想着Sql Server有个密码策略,如果使用密码策略的话就需要定期修改密码,想来Oracle也应该是这个原因吧,可是怎么改呢?于是从网上找了好多方法处理好了,现备忘在这里。
1、由于是已经提示密码过期而登陆不上了,所以需要先用系统用户登陆:
开始-->运行-->cmd-->sqlplus / as sysdba
2、查看账号状态,看账号状态是不是expired(如果是locked则需要先解锁)
SQL>select username,account_status from dba_users;
3、查看用户的proifle是哪个,一般是default:
SQL>SELECT username,PROFILE FROM dba_users;
4、查看指定概要文件(如default)的密码有效期设置:
SQL>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
5、将密码有效期由默认的180天修改成“无限制”,修改之后不需要重启动数据库,会立即生效。
SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
6、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示,已经被提示的帐户必须再改一次密码,举例如下:
$sqlplus / as sysdba
SQL> alter user system identified by <原来的密码> ----不用换新密码
7、查看账号状态变为open了
SQL>select username,account_status from dba_users;
做完以上步骤之后,让同事登陆一下数据库,可以了,OK,大功告成:)