確定是由於oracle11g中默認在default概要文件中設置了“PASSWORD_LIFE_TIME=180天”所導致。
查看用戶的proifle是哪個,一般是default:
sql>SELECT username,PROFILE FROM dba_users;
查看指定概要文件(如default)的密碼有效期設置:
sql>SELECT * FROM dba_profiles s WHERE s.profile=\'DEFAULT\' AND resource_name=\'PASSWORD_LIFE_TIME\';
將密碼有效期由默認的180天修改成“無限制”:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之後不需要重啓動數據庫,會立即生效。
修改後,還沒有被提示ORA-28002警告的帳戶不會再碰到同樣的提示;
已經被提示的帳戶必須再改一次密碼,舉例如下:
$sqlplus / as sysdba
sql> alter user smsc identified by <原來的密碼> ----不用換新密碼
oracle11g啓動參數resource_limit無論設置爲false還是true,密碼有效期都是生效的,所以必須通過以上方式進行修改。以上的帳戶名請根據實際使用的帳戶名更改。