Oracle 11g使用者口令過期

逍遙三人發表於2012-02-07

轉載:http://space.itpub.net/11447732/viewspace-627577

今天早上珠海一客戶電話來告知他們程式無法通過JBOSS連線Oracle了。經過我們公司同事檢視,發現是Oracle使用者口令不對導致。但是在這期間是沒有人對資料庫使用者的口令做過任何更改操作的。後來問了一下去現場實施的同事得知該客戶使用的是Oracle 11g版本。因此想到會不會是因為Oracle 11g新的安全性對使用者的口令的有效期做了限制,後經查實的確如此。下面就把解決方法寫一下。

Oracle錯誤程式碼:ORA-28002。

受影響版本:Oracle11g以上版本。

導致密碼消失的原因:Oracle 11g中預設的DEFAULT概要檔案中口令有效期PASSWORD_LIFE_TIME預設值為180天。

當以客戶端登陸Oracle提示ORA-28002,則基本可以確定登陸帳號已過有效期,使用具有DBA許可權的帳號重置該帳號密碼即可。

解決方法:

以下步驟以具有DBA許可權使用者操作

1.檢視口令失效使用者的profile檔案

SQL>SELECT username,profile FROM dba_users;

EM:伺服器>使用者,檢視口令失效的使用者對應的概要檔案,這裡假設為DEFAULT,下同。

2.檢視對應的概要檔案的口令有效期設定

SQL>SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

EM:伺服器>概要檔案>選擇剛剛查到的概要檔案DEFAULT>檢視,檢視口令下面的有效期值。

3.將口令有效期預設值180天修改成“無限制”

SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

EM:伺服器>概要檔案>選擇剛剛查到的概要檔案DEFAULT>編輯>口令,在有效期輸入或選擇你需要的值,儲存。

該引數修改實時生效。

出於資料庫安全性考慮,不建議將PASSWORD_LIFE_TIME值設定成UNLIMITED,即建議客戶能夠定期修改資料庫使用者口令。

在修改PASSWORD_LIFE_TIME值之前已經失效的使用者,還是需要重新修改一次密碼才能使用。

SQL>ALTER USER test INDENTIFIED BYpassword

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

相關文章