zoukankan      html  css  js  c++  java
  • ORACLE数据库用户账号处于expired状态如何处理

    账户过期,必须要用户更改密码, 账户才能重新使用。

    但有些时候, 因为各种原因, 我们并不知道原密码的明文是什么,但很多时候又不能修改已有密码,好在可以用原密码来更改密码。

    在11G中,dba_users.password已经不再显示用户的密码:

    SQL> select username,ACCOUNT_STATUS from dba_users where username in ('SYSTEM','SCOTT');
    
    USERNAME                       ACCOUNT_STATUS
    ------------------------------ --------------------------------
    SCOTT                          OPEN
    SYSTEM                         EXPIRED
    
    SQL> select password from dba_users where username in ('SYSTEM','SCOTT');
    
    PASSWORD
    ------------------------------
    

    在系统表user$中,可以查看用户的密码(PASSWORD)和状态(ASTATUS)

    SQL> select user#,name,password,astatus from user$ where name in ('SYSTEM','SCOTT');
    
         USER# NAME                           PASSWORD                          ASTATUS
    ---------- ------------------------------ ------------------------------ ----------
            83 SCOTT                          F894844C34402B67                        0
             5 SYSTEM                         2D594E86F93B17A1                        1
    
    SQL> 
    

    可以通过上面的查询结果,用原来的密码来修改过期用户的密码:

    SQL> alter user system identified by values '2D594E86F93B17A1';  
    
    User altered.
    
    SQL> select user#,name,password,astatus from user$ where name in ('SYSTEM','SCOTT');
    
         USER# NAME                           PASSWORD                          ASTATUS
    ---------- ------------------------------ ------------------------------ ----------
            83 SCOTT                          F894844C34402B67                        0
             5 SYSTEM                         2D594E86F93B17A1                        0
    
    SQL> 
    

    其实也可以直接修改表user$的字段ASTATUS为0,这样用户账号就变成open状态了。
    ASTATUS对应的值的含义可以同过user_astatus_map查看

    SQL> select * from user_astatus_map; 
    
       STATUS# STATUS
    ---------- --------------------------------
             0 OPEN
             1 EXPIRED
             2 EXPIRED(GRACE)
             4 LOCKED(TIMED)
             8 LOCKED
             5 EXPIRED & LOCKED(TIMED)
             6 EXPIRED(GRACE) & LOCKED(TIMED)
             9 EXPIRED & LOCKED
            10 EXPIRED(GRACE) & LOCKED
    
    9 rows selected.
    
    SQL> 
    
  • 相关阅读:
    sql笔记
    虚函数和抽象类笔记
    构造函数和静态构造函数 笔记
    在与sql server 建立连接时出现与网络相关的或特定于实例的错误
    类型转换 笔记
    test
    document.body和document.documentElement比较
    sql2005 存储过程实现分页
    新闻发布用到的存储过程和触发器
    SQL数据查询实例1
  • 原文地址:https://www.cnblogs.com/abclife/p/5397969.html
Copyright © 2011-2022 走看看