2011-04-02 99 views

回答

17

不,您不能在不重置密碼的情況下將帳戶狀態從EXPIRE(GRACE)更改爲OPEN。

documentation說:

如果導致數據庫用戶的密碼,以 之前PASSWORD 到期到期,那麼用戶(或DBA)必須更改密碼試圖登錄到數據庫繼過期。

但是,您可以通過將用戶密碼重置爲相同的值來將狀態更改爲OPEN。

根據您的版本和設置,其中一個查詢可能會得到你的密碼哈希:

select spare4 from sys.user$ where name='[user name]'; 
select password from dba_users where username = '[user name]'; 

然後用它來重置密碼:

alter user [user name] identified by values '[result from above query]'; 
17

編輯從jonearles的回答, http://kishantha.blogspot.com/2010/03/oracle-enterprise-manager-console.htmlhttp://blog.flimatech.com/2011/07/17/changing-oracle-password-in-11g-using-alter-user-identified-by-values/(Oracle 11g):

要在將來停止這種情況,請執行以下操作。

  • 登錄爲sqlplus,以SYSDBA - > SQLPLUS 「/ AS SYSDBA」
  • 執行 - >ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED;

要重置用戶的狀態,運行查詢:

select 
'alter user ' || su.name || ' identified by values' 
    || ' ''' || spare4 || ';' || su.password || ''';' 
from sys.user$ su 
join dba_users du on ACCOUNT_STATUS like 'EXPIRED%' and su.name = du.username; 

和執行一些或全部結果集。

+0

我只需要首先使線寬變大,以便我可以輕鬆地複製結果: set linesize 200; – AmanicA 2014-08-06 15:59:27

+0

這幫了我!謝謝! – 2015-02-17 08:47:50

2

如果你知道用戶的密碼,或者你想猜,請執行下列操作:

  • connect user/password

如果此命令successufully連接,你會看到消息「連接」,否則你會看到一條錯誤消息。如果你是成功的日誌記錄,那意味着你知道密碼。 在這種情況下,只是做:

  • alter user NAME_OF_THE_USER identified by OLD_PASSWORD;

,這將重置密碼相同的密碼之前,也重置該用戶的ACCOUNT_STATUS。

4
set long 9999999 
set lin 400 
select DBMS_METADATA.GET_DDL('USER','YOUR_USER_NAME') from dual; 

這將輸出類似這樣:

SQL> select DBMS_METADATA.GET_DDL('USER','WILIAM') from dual; 

DBMS_METADATA.GET_DDL('USER','WILIAM') 
-------------------------------------------------------------------------------- 

    CREATE USER "WILIAM" IDENTIFIED BY VALUES 'S:6680C1468F5F3B36B726CE7620F 
FD9657F0E0E49AE56AAACE847BA368CEB;120F24A4C2554B4F' 
     DEFAULT TABLESPACE "USER" 
     TEMPORARY TABLESPACE "TEMP" 
     PASSWORD EXPIRE 
SQL> 

只使用第一塊與代替ALTER USER:

ALTER USER "WILIAM" IDENTIFIED BY VALUES 'S:6680C1468F5F3B36B726CE7620F 
FD9657F0E0E49AE56AAACE847BA368CEB;120F24A4C2554B4F'; 

這將使帳戶回到開狀態而無需更改密碼(只要您正確剪切並粘貼來自DBMS_METADATA.GET_DDL輸出的哈希值),而且您甚至不需要知道密碼是什麼。

+0

令人驚歎!像魔術一樣工作! – AlexSC 2017-09-28 11:10:11