欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle密码过期问题 ORA-28001:the password has expired

程序员文章站 2022-05-30 08:29:46
如果已经过期了,首先需要修改密码,然后设置密码为无限期。修改以sys用户登陆。 修改密码:alter user username identified by password 密码可以和之前的密码相同也可以不同。 修改数据库密码为无限期: Oracle的密码过期规则是用Profile来管理的,系统默... ......

如果已经过期了,首先需要修改密码,然后设置密码为无限期。修改以sys用户登陆。

修改密码:alter user username identified by password  密码可以和之前的密码相同也可以不同。

修改数据库密码为无限期:

Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天。当超出这个时间时,密码就会过期,数据库不能连接。Oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的。

有两种处理方式:

一、直接修改用户对应的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;
修改之后不需要重启动数据库,会立即生效。

二、新建一个Profile文件,设置其密码,并设置其为当前用户的Profile文件

1、新建profile "PASSWD_UNLIMIT",规则与DEFAULT一致(因为一个profile中包含很多的项目,我们此时只想修改过期规则,其他的不变)
2、修改profile "PASSWD_UNLIMIT",修改过期规则为UNLIMITED
3、将'MESSERIES'用户适用新的profile "PASSWD_UNLIMIT"

   1: SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
   2: SELECT * FROM dba_profiles s ;
   3: --查看用户profile
   4: select username, user_id, account_status,expiry_date, profile from dba_users where username = username;
   5: --1. 创建新的profile(PASSWD_UNLIMIT)复制DEFAULT的Script
   6: CREATE PROFILE "PASSWD_UNLIMIT" LIMIT
   7:  SESSIONS_PER_USER UNLIMITED
   8:  CPU_PER_SESSION UNLIMITED
   9:  CPU_PER_CALL UNLIMITED
  10:  CONNECT_TIME UNLIMITED
  11:  IDLE_TIME UNLIMITED
  12:  LOGICAL_READS_PER_SESSION UNLIMITED
  13:  LOGICAL_READS_PER_CALL UNLIMITED
  14:  COMPOSITE_LIMIT UNLIMITED
  15:  PRIVATE_SGA UNLIMITED
  16:  FAILED_LOGIN_ATTEMPTS 10
  17:  PASSWORD_LIFE_TIME 180
  18:  PASSWORD_REUSE_TIME UNLIMITED
  19:  PASSWORD_REUSE_MAX UNLIMITED
  20:  PASSWORD_LOCK_TIME 1
  21:  PASSWORD_GRACE_TIME 7
  22:  PASSWORD_VERIFY_FUNCTION NULL;
  23: SELECT * FROM dba_profiles;
  24: --2. 修改新建的profile(PASSWD_UNLIMIT),密码过期为不过期
  25: ALTER profile PASSWD_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
  26: --3. 修改用户的Profile为新的profile
  27: alter user username profile PASSWD_UNLIMIT;