Oracle 11g 密碼設定為不過期

Davis_itpub發表於2018-06-27

過期的原因一般有兩種可能:一.由於oracle11g中預設在default概要檔案中設定了“PASSWORD_LIFE_TIME=180天”所導致。二.由於oracle11g中預設在default概要檔案中設定了“FAILED_LOGIN_ATTEMPTS=10次”,當輸入密碼錯誤次數達到設定值將導致此問題。

如果是第一種情況解決方法如下: 1、檢視使用者的proifle是哪個,一般是default:

    sql>SELECT username,PROFILE FROM dba_users;

    2、檢視指定概要檔案(如default)的密碼有效期設定:

    sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

    3、將密碼有效期由預設的180天修改成“無限制”:

    sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

    修改之後不需要重啟動資料庫,會立即生效。

    4、修改後,還沒有被提示ORA-28002警告的帳戶不會再碰到同樣的提示;

    已經被提示的帳戶必須再改一次密碼,舉例如下:

    $sqlplus / as sysdba

    sql> alter user smsc identified by <原來的密碼> ----不用換新密碼

    oracle11g啟動引數resource_limit無論設定為false還是true,密碼有效期都是生效的,所以必須透過以上方式進行修改。以上的帳戶名請根據實際使用的帳戶名更改。



第二種情況的話你可以這樣操作  1、檢視使用者的proifle是哪個,一般是default:

    sql>SELECT username,PROFILE FROM dba_users;

    2、檢視指定概要檔案(如default)的密碼有效期設定:

    sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='FAILED_LOGIN_ATTEMPTS';

    3、將嘗試登入失敗次數由預設的10次修改成“無限制”:

    sql>ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

    4、修改後,還沒有被提示ORA-28000警告的使用者不會再碰到同樣的提示;

    已經被鎖定的帳戶必須解除鎖定,舉例如下:

    $sqlplus / as sysdba

    sql> alter user smsc identified by oracle account unlock;

    5、修改後default profile應該如下:

    sql> select * from dba_profiles WHERE dba_profiles.profile='DEFAULT';

    PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT

    ------------------------------ -------------------------------- ------------- ----------------------

    DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED

    DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED

    修改之後不需要重啟動資料庫,會立即生效。

    如果出現ORA-28000 the account is locked.錯誤

    alter user 使用者名稱 account unlock;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31520497/viewspace-2156838/,如需轉載,請註明出處,否則將追究法律責任。

相關文章