ORA-28002: 7 天之後口令將過期的解決方法

啓動Tomcat,當連接oracle數據庫時錯誤信息提示:“ORA-28002: 7 天之後口令將過期”。
原因:oracle11g中默認在default概要文件中設置了"PASSWORD_LIFE_TIME=180”所導致,oracle用戶的密碼必須在180天內更改,或則啓動數據庫的時候會提示連接失敗.
oracle 密碼過期的解決方法,按照如下步驟進行操作:
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';
(如果這樣寫有可能提示“你未選中行”,其實這樣就行了
SELECT * FROM dba_profiles WHERE resource_name='PASSWORD_LIFE_TIME';
我的就是這樣)
3、將密碼有效期由默認的180天修改成“無限制”:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
如需更改爲有限制的,如60天:
SQL>alter profile default limit PASSWORD_LIFE_TIME 60 ;

修改之後不需要重啓動數據庫,會立即生效。


修改後,還沒有被提示ORA-28002警告的用戶不會再碰到同樣的提示;
已經被提示的用戶必須再改一次密碼,舉例如下:

運行,cmd進入dos操作窗口

  1. 運行->cmd,輸入sqlplus /nolog 回車。
  2. 輸入conn /as sysdba 回車。
    sql> alter user jcms identified by  <原來的密碼>

 另外的思路
查看用戶所屬的 profile ,一般爲DEFAULT
SQL>select * from dba_profiles where resource_type='PASSWORD';
 
取消密碼管理:
SQL>alter profile DEFAULT limit unlimited;
如:
SQL>alter profile DEFAULT limit password_reuse_time unlimited;
停止密碼檢驗函數:
SQL>alter profile DEFAULT limit password_verify_function null;
創建 用戶 專用 profile:
CREATE PROFILE test LIMIT
SESSIONS_PER_USER       UNLIMITED
CPU_PER_SESSION          UNLIMITED
CPU_PER_CALL             3000
CONNECT_TIME             45
LOGICAL_READS_PER_SESSION   DEFAULT
LOGICAL_READS_PER_CALL     1000
PRIVATE_SGA             15K
COMPOSITE_LIMIT          5000000;
如需更改:
SQL>alter profile test limit PASSWORD_LIFE_TIME 60 ;
更改用戶profile
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章