- 環境
- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
- SQL*Plus: Release 11.2.0.1.0 Production
事象 : Weblogicでデプロイする時にOracleDBに接続するところで怒られた
サーバのlog
Caused By: weblogic.common.ResourceException: ORA-28001: the password has expired
at weblogic.jdbc.common.internal.XAConnectionEnvFactory.makeConnection(XAConnectionEnvFactory.java:500)
// 省略
原因 : ユーザのパスワードの有効期限が切れたから
メッセージの通り「パスワードの有効期限が切れている」です。
クライアントツールのA5M2でもアクセスしてみるとやはり「パスワードの有効期限が切れている」とメッセージが出ました。
対応方法 : パスワードを更新する
1.. SQLPlusを使ってSYSDBAでデータベースにログインする
$ sqlplus / as sysdba
SYSDBAおよびSYSOPERはデータベースの作成、起動、停止、バックアップまたはリカバリなどの高度な管理操作を実行するために必要な管理権限です。SYSDBAシステム権限は、すべての権限を持つデータベース管理者用、SYSOPERシステム権限は、基本的な運用タスクを実行するがユーザー・データを表示する権限は持たないユーザー用です。
SYSDBAおよびSYSOPERシステム権限
2.. パスワードを変更する
-- ユーザの存在を確認する
SELECT username,account_status,expiry_date FROM dba_users WHERE username = '対象のユーザ名';
USERNAME ACCOUNT_STATUS EXPIRY_DA
--------------------- --------------------- ---------
対象のユーザ名 EXPIRED 30-OCT-18
-- パスワードを変更する
ALTER user 対象のユーザ名 IDENTIFIED BY 新しいパスワード;
-- 自動CommitがOFF(デフォルト)の場合はCommitする
COMMIT;
3.. (Weblogicを使っている場合だけ)Weblogicのコンソールでデータベースのパスワードを更新する
- コンソールにログイン
- サイドメニュー > [サービス] > [データ・ソース] > 対象のデータ・ソース名のリンクを押下
- [接続プール]タブ > [パスワード]欄でパスワードを更新する