在使用Oracle数据库时,有时会报ORA-28001:the password has expired 的错误,具体问题是账号密码过期了,那该如何处理这种问题呢? 能否处理根除这个问题呢? 本篇经验就给你答案。
工具/原料
一台安装了Oracle数据库的电脑
方法/步骤
1
先看看问题,在连接数据库时,报了一个 ORA-28001:the password has expired 的错误。
2
我们先解决问题:1. 登陆安装了该Oracle的数据库服务器(如果是本机,则跳过该步骤)2. 打开命令行窗口(运行cmd),执行 sqlplus / as sysdba3. 然后执行如下变更语句,并提交:alter user 用户名 identified by 用户密码(此处写原始密码即可);commit;
3
再次登陆数据库,这次就直接登陆成功了。
彻底根治 ORA-28001密码过期的问题
1
为啥数据库账号的密码会过期呢?因为我们数据库中是这么配置的,在上面登陆的命令行终端上执行如下查询语句:select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';我们会发现默认配置文件中(我们的账号通常都使用这个默认配置文件),数据库账号密码的期限为 180 天。
2
那我们就将这个期限修改为无限期吧,这样这个问题就不会发生了,执行如下变更语句,并提交:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;
3
再次查看我们默认的配置文件的密码过期策略,已变更为永不过期。
注意事项
该变更会即时生效,无需重启数据库