Oracle11g以降は、パスワードの有効期限がデフォルトで180日となっています。 そのままにしておくと、180日経過後に突然ログインできなくなるので、パスワードの有効期限を延ばす(もしくは無期限に設定する)必要があります。
以下、SYSDBAで実行。
パスワード有効期限確認方法
select * from dba_profiles where resource_name = 'PASSWORD_LIFE_TIME'
パスワード有効期限を無期限に変更
alter profile default limit password_life_time unlimited
既に有効期限が過ぎていた場合、アカウントロックがかかっているので、その場合は一度パスワードを変更した後、ロックを解除する。
パスワード変更
alter user <user_name> identified by <new_password>
アカウントロック解除
alter user <user_name> account unlock
ちなみにMySQLにも同様の機能が搭載されたが、「(管理者の意図に反して、ある日突然接続ができなくなるなんて)バグじゃねえか!」 という意見があり、廃止される見込みらしいです。(Oracle社で開催されたMySQL勉強会で聞いたネタ)
だよね。俺もそっちが正しいと思う。