• 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;
    

      

  • 相关阅读:
    python2.7打印中文乱码的问题解决
    Tesseract5.0训练字库,提高OCR特殊场景识别率(一)
    git比较重要但是又容易忘记的操作
    ntp局域网时间同步操作
    Flask使用原生sql语句
    Linux的tail命令查看文件
    使用gitlab的webhook进行前端自动部署
    通过queue实现前端的被动接收
    互动interactive与多行输出
    复习
  • 原文地址:https://www.cnblogs.com/morgan363/p/11078663.html
Copyright © 2020-2023  润新知