用SYSTEM賬戶登錄SQLPLUS:
1、SELECT username,PROFILE FROM dba_users;
2、 SELECT * FROM dba_profiles WHERE resource_name='PASSWORD_LIFE_TIME';
3、ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
4、alter user <用戶名> identified by <原來的密碼>;
5、commit;
【問題描述】
使用toad或者sqlplus登陸oracle數據庫時提示“ORA-28002: 7 天之后口令將過期”。 【原因/觸發因素】
確定是由於oracle11g中默認在default概要文件中設置了 “PASSWORD_LIFE_TIME=180天”所導致。
【影響和風險】 影響
密碼過期后,業務進程連接數據庫異常,影響業務使用。 問題發生頻率
數據庫密碼過期后,業務進程一旦重啟會提示連接失敗。 【解決方案】
按照如下步驟進行操作:
1、在cmd底下,用sqlplus登入數據庫,語句如下:sqlplus sys/sys@orcl as sysdba 2、查看用戶的proifle是哪個,一般是default: sql>SELECT username,PROFILE FROM dba_users;
3、查看指定概要文件(如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';) 4、將密碼有效期由默認的180天修改成“無限制”:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 修改之后不需要重啟動數據庫,會立即生效。
5、修改后,還沒有被提示ORA-28002警告的帳戶不會再碰到同樣的提示; 已經被提示的帳戶必須再改一次密碼,舉例如下:
sql> alter user smsc identified by <原來的密碼> ----不用換新密碼
6、使用修改后的用戶登錄,如果報“ORA-28000:用戶已被鎖”,解鎖 sql > alter user db_user account unlock; sql > commit;
