• 不修改用户密码的前提下,解锁用户_20200724


    不修改用户密码的前提下,解锁用户

     

    1.0需求:某用户通知,无法登陆,用户被锁定,但是密码不知道 或者 不告诉你

     

    1.1:用户被锁定:几种可能性
    A用户使用默认Pfile概要文件,其中参数:
    
    -- PASSWORD_LIFE_TIME 180          密码有效保留时间
    
    B用户使用默认Pfile概要文件,其中参数:
    
    -- FAILED_LOGIN_ATTEMPTS 10        登录失败后,允许尝试登录的次数
    
    -- PASSWORD_LOCK_TIME   1      登录失败后,超出限制,账户锁定天数
    
    C 用户使用的自定义设置:本次实验不做考虑
    
     
    
    1.2故障模拟
    #创建测试用户
    
    SQL> create user yang identified by asfqr1rfa10;
    
    #锁定用户
    
    SQL> alter user yang account lock;
    
     
    
    #PL/SQL登陆报错
    
     
    
    SQL*Plus登陆报错
    
    SQL> conn yang/asfqr1rfa10; 
    
    ERROR:
    
    ORA-28000:
    
    Warning: You are no longer connected to ORACLE.
    
    #查询报错解释说明
    
    SQL> !oerr ora 28000
    
    28000, 00000, "the account is locked"
    
    // *Cause:   The user has entered wrong password consequently for maximum
    
    //           number of times specified by the user's profile parameter
    
    //           FAILED_LOGIN_ATTEMPTS, or the DBA has locked the account
    
    // *Action:  Wait for PASSWORD_LOCK_TIME or contact DBA
    
    #输入错误的密码,超出允许输入错误次数的范围,用户被锁定
    
    #DBA锁定  请联系DBA
    
     
    
    1.3解决思路
    1.3.1查询信息
    # SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
    
    SQL>  select USERNAME,PASSWORD,ACCOUNT_STATUS,LOCK_DATE,PROFILE from dba_users where username ='YANG';
    
    YANG        用户
    
    LOCKED     锁定
    
    2018-01-14 01:25:21   锁定时间
    
    DEFAULT   概要文件默认
    
     
    
    1.3.2 查询用户密码 hash后的值
    SQL>select name,password from user$ where name='YANG'
    
     
    
    NAME       PASSWORD
    
    ---------- ------------------------------------------------------------
    
    YANG       BF382C1C900CB086
    
     
    
    1.3.2使用密码hash值解锁用户,密码不修改
    SQL> alter user yang identified by values 'BF382C1C900CB086' account unlock;
    
     
    
    1.3.3验证
    SQL> conn yang/asfqr1rfa10
    
    Connected.
    
     
    
    1.3.4设置密码永不过期
    默认概要文件180天过期,可以修改概要文件参数
    
    #查询用户账户密码到期时间
    
    SQL>  alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
    
    SQL>  select username,expiry_date from dba_users where username in('HR','YANG');
    
    USERNAME                                                     EXPIRY_DATE
    
    ------------------------------------------------------------ -------------------
    
    YANG                                                         2018-07-13 01:49:18
    
    HR                                                           2018-07-12 06:09:24
    
     
    
    SQL> select sysdate from dual;
    
    2018-01-14 01:55:04
    
     
    
    #修改无限制OK
    
    alter profile default limit password_life_time unlimited;
    
     
    
    #查询验证
    
    SQL> select username,expiry_date from dba_users where username in('HR','YANG');
    
     
    
    USERNAME   EXPIRY_DATE
    
    ---------- -------------------
    
    YANG
    
    HR
    
     
    
    #扩展:可以修改上述:密码登录错误后,允许尝试连接次数,修改无限制:慎重

    2.0.19C_12C后 USER$基表PASSWD 隐藏使用SPARE4,本质与上述情况相同

    SQL> select username,PASSWORD from dba_users where username='TT';
    USERNAME   PASSWORD
    ---------- --------------------
    TT
    SQL> alter user TT identified by tt;
    
    SQL> select name,SPARE4 from user$ where name='TT';
    NAME    SPARE4
    ------------------------------------------------------------------------------------------------------------------------
    TT
    S:134EF36DAD8F80789EF1A0300578E90D101166791E2FCA004DE1881D6BF2;T:E00A1212D37A709DA6645EEC923832BD93A5F98787CDCC04CB599FD
    8BBDF1304804F26AC470C8FCFF455F3EE6B962105B61C0E2A561C1BD8087CED910169E903B5D759386AB82AEB6C23529D851D1D15
    
    SQL> alter user cc identified by values 'S:134EF36DAD8F80789EF1A0300578E90D101166791E2FCA004DE1881D6BF2;T
    :E00A1212D37A709DA6645EEC923832BD93A5F98787CDCC04CB599FD8BBDF1304804F26AC470C8FCFF455F3EE6B962105B61C0E2A561C1BD8
    087CED910169E903B5D759386AB82AEB6C23529D851D1D15
    '; $ sqlplus cc/tt@192.168.60.45:1521/pp1 SQL>
  • 相关阅读:
    pycharm下载与安装
    IOS 字体表
    iOS 在 ARC 环境下 dealloc 的使用、理解误区
    微信支付的开发
    Undefined symbols for architecture i386:和"_OBJC_CLASS_$_xx", referenced from:问题解决方法
    soureTree使用
    UINavigationController 直接pop到指定controllerView的方法
    OBC: NSString 与 NSArray 互转
    NSArray的containsObject的使用时注意的问题
    IOS 自定义导航栏标题和返回按钮标题
  • 原文地址:https://www.cnblogs.com/lvcha001/p/8975554.html
Copyright © 2020-2023  润新知