ORA-28001: the password has expired 密码已过期
ORA-28001: the password has expired
ORA-28001: 密码已过期
Cause:
The user's account has expired and the password needs to be changed
Action:
change the password or contact the DBA
如果已经过期了,首先需要修改密码,然后设置密码为无限期。修改以sys用户登陆。
修改密码:alter user username identified by password 密码可以和之前的密码相同也可以不同。
修改数据库密码为无限期:
Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天。当超出这个时间时,密码就会过期,数据库不能连接。 Oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的。
查看 oracle 数据库的用户的密码过期时间(EXPIRY_DATE结果为空,表示 无限制 ):
select username,account_status,lock_date,expiry_date from dba_users;
一、直接修改用户对应的Profile的密码
1、查看用户的proifle是哪个,一般是default:
select username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
select * FROM dba_profiles s Where s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3、将密码有效期由默认的180天修改成“无限制”:
alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重启动数据库,会立即生效。
例如:
SQL> alter user t_admin identified by Passwd123#; User altered. SQL> set line 300; SQL> select * FROM dba_profiles s Where s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; PROFILE RESOURCE_NAME RESOURCE LIMIT ------------------------------ -------------------------------- -------- ---------------------------------------- DEFAULT PASSWORD_LIFE_TIME PASSWORD 180 SQL> alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; Profile altered. SQL> select * FROM dba_profiles s Where s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; PROFILE RESOURCE_NAME RESOURCE LIMIT ------------------------------ -------------------------------- -------- ---------------------------------------- DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED SQL>
二、新建一个Profile文件,设置其密码,并设置其为当前用户的Profile文件
1、新建profile "PASSWD_UNLIMIT",规则与DEFAULT一致(因为一个profile中包含很多的项目,我们此时只想修改过期规则,其他的不变)
2、修改profile "PASSWD_UNLIMIT",修改过期规则为UNLIMITED
3、将'MESSERIES'用户适用新的profile "PASSWD_UNLIMIT"
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; SELECT * FROM dba_profiles s ; --查看用户profile select username, user_id, account_status,expiry_date, profile from dba_users where username = username; --1. 创建新的profile(PASSWD_UNLIMIT)复制DEFAULT的Script CREATE PROFILE "PASSWD_UNLIMIT" LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED CONNECT_TIME UNLIMITED IDLE_TIME UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED COMPOSITE_LIMIT UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME 180 PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_LOCK_TIME 1 PASSWORD_GRACE_TIME 7 PASSWORD_VERIFY_FUNCTION NULL; SELECT * FROM dba_profiles; --2. 修改新建的profile(PASSWD_UNLIMIT),密码过期为不过期 ALTER profile PASSWD_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED; --3. 修改用户的Profile为新的profile alter user username profile PASSWD_UNLIMIT;
posted on 2019-06-24 18:15 morgan363 阅读(2138) 评论(0) 编辑 收藏 举报