天天看點

oracle使用者密碼忘記解決辦法

1)使用者被鎖定,但一直無法解鎖 

說明:在個别現場發現一個使用者經常被鎖住,剛使用[alter user <user_name> account unlock; commit;]然後仍然無法登入,還是一直報錯:使用者被鎖定。  目前使用者: 如何 檢視目前 連接配接的 使用者 how   user; 

select   sys_context( 'userenv ', 'session_user ')   from   dual; 

select   user   from   dual;   

檢視所有登入的使用者 

select   username   from   v$session;

SQL> select count(*) from v$session;

  COUNT(*) ----------         26 SQL> select machine,terminal from v$session;

SQL> select * from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_ ------------------------------ ------------------------------ --- --- --- SYSTEM                         AQ_ADMINISTRATOR_ROLE          YES YES NO SYSTEM                         DBA                            YES YES NO SYSTEM                         MGMT_USER                      NO  YES NO

解決辦法:查DBA_USERS表,可以看到使用者的狀态。是否被鎖住(變成LOCKED(TIMED)狀态了說明使用者被鎖定)。  SQL> select USERNAME , ACCOUNT_STATUS from dba_users;

USERNAME                       ACCOUNT_STATUS ------------------------------ -------------------------------- MGMT_VIEW                      OPEN SYS                                    OPEN SYSTEM                             OPEN DBSNMP                             OPEN SYSMAN                             OPEN SCOTT                               OPEN OUTLN                                EXPIRED & LOCKED

select * from USER_HISTORY$ –檢視使用者密碼是否過期 

select * from dba_profiles   –檢視使用者使用的profile設定 

解決: 

sqlplus /nolog 

conn /as sysdba 

alter user <user_name> account unlock;  –解鎖 

alter user <user_name> password expire;  –密碼過期 

alter user  <user_name>  identified by <password>; –重設密碼 

或者 alter profile default limit failed_login_Attempts unlimited; 

然後登入即可 

【注】若要檢視任一賬戶的密碼限期,可查詢DBA_USERS資料字典視圖的Expire_Date列。若使用者自己想檢視,可查詢USER_USERS資料字典視圖的Expiry_Date列(通過SQL*Plus或一個基于客戶機的查詢工具)。