本文主要是介绍ORA-28001: the password has expired 错误处理--修改密码并设置永久有效,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述
登录数据库时遇到错误ORA-28001: the password has expired
原因分析
用户密码设置了过期时间
处理方式
治标:重置过期用户密码
治本:设置密码过期策略
实操演示
1、登录到oracle的服务器,切换到oracle 用户
# su - oracle
2、如果当前服务器安装多个实例,需要切换当前操作的实例名
$ echo $ORACLE_SID --查看当前操作实例
$ export ORACLE_SID=XXX --切换至指定实例
3、以dba身份登录
$ sqlplus / as sysdba
4、修改过期的用户密码
alter user XXX identified by XXX;
修改用户密码之后,重新使用修改的密码连接数据库就可以了。如果还有被锁定的用户,需要执行如下解锁命令:
alter user XXX unlock;
5、设置密码永不过期
1)查看用户的 proifle 是哪个(一般是default)
SQL> SELECT username,PROFILE FROM dba_users;USERNAME PROFILE
------------------------------------------------------------
SYS DEFAULT
SYSTEM DEFAULT
ZABBIX DEFAULT
......
2)查看对应的概要文件(如default)的密码有效期设置(一般默认为180天)
SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
------------------------------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD 180
3)将概要文件(如default)的密码有效期由默认的“180天”修改为“无限制”
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;Profile altered.
4)修改之后不需要重启动数据库,会立即生效
SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
------------------------------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
这篇关于ORA-28001: the password has expired 错误处理--修改密码并设置永久有效的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!