標籤:
Oracle11G建立使用者時預設密碼到期限制是180天(即6個月), 如果超過180天使用者密碼未做修改則該使用者無法登入。
Oracle公司是為了資料庫的安全性預設在11G中引入了這個預設功能,但是這個預設的功能很容易被DBA或者是開發人員給疏忽,一旦密碼180天未修改過,就會出現這樣的問題。
方法一(PL/SQL):
| 1 |
SELECT * FROM dba_profiles WHERE profile=‘DEFAULT‘ AND resource_name=‘PASSWORD_LIFE_TIME‘ |
| 12345678 |
<br>查詢密碼的有效期間設定,LIMIT欄位是密碼有效天數。<br><br>在密碼將要到期或已經到期時可通過如下語句進行修改密碼,密碼修改後該使用者可正常串連資料庫。<br>ALTER USER 使用者名稱 IDENTIFIED BY 密碼 ; 如果想去除180天的密碼生存周期的限制可通過如下SQL語句將其關閉 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED 如上SQL語句將口令有效期間預設值180天修改成了“無限制”。但是出於資料庫安全性考慮,不建議將PASSWORD_LIFE_TIME值設定成UNLIMITED |
方法二(cmd命令):
| 123 |
(1)在CMD命令視窗中輸入: sqlplus 使用者名稱/密碼@資料庫本地服務名 as sysdba;(如:sqlplus scott/[email protected] as sysdba;) |
| 123 |
(2)查看使用者的proifle是哪個,一般是default : sql>SELECT username,PROFILE FROM dba_users; |
| 123 |
(3)查看對應的概要檔案(如default)的密碼有效期間設定: sql>SELECT * FROM dba_profiles s WHERE s.profile=‘DEFAULT‘ AND resource_name=‘PASSWORD_LIFE_TIME‘; |
| 12345 |
(4)將概要檔案(如default)的密碼有效期間由預設的180天修改成“無限制”: sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 修改之後不需要重啟動資料庫,會立即生效。 |
| 1234567 |
(5)修改後,還沒有被提示ORA-28002警告的使用者帳號不會再碰到同樣的提示;而已經被提示的使用者帳號必須再改一次密碼,舉例如下: $sqlplus / as sysdba sql>alter user 使用者名稱 identified by <原來的密碼> account unlock; ----不用換新密碼 注意:oracle11g啟動參數resource_limit無論設定為false還是true,密碼有效期間都是生效的,所以必須通過以上方式進行修改。 |
Oracle報錯,ORA-28001: 口令已經失效[轉]