結果としては、APEXの管理サービスよりユーザーの編集を開いて、ロックを解除しました。
オンプレミスのAPEXのインストールでは、管理者および開発者もAPEX自体に登録されたユーザーなので、この対応になります。
Autonomous Databaseの場合、管理者および開発者ユーザーと同名のデータベース・ユーザーが作成され、そのユーザーのユーザー名とパスワードでデータベースで認証することで、APEXの開発ツールにサインインします(APEXのアプリケーションについては、APEXに保存されているパスワードにより認証されます)。そのため、データベース・ユーザーがロックされてると、同様に「アカウントがロックされています。」のエラーが発生します。
以下の問い合わせを発行し、ユーザーの状態を確認します。
select username, account_status, lock_date from dba_users where username = upper('ユーザー名')
この場合は、データベース・ユーザーのアカウントをアンロックすることで、事象は解消します。
alter user ユーザー名 account unlock;
APEXワークスペースに紐づくデフォルト・パーシング・スキーマもデータベース・ユーザーなので、アカウントはロックできます。Oracle APEXのアプリケーションは、アプリケーションに割り当てられたパーシング・スキーマの権限でSQLやPL/SQLを実行しますが、そのデータベース・ユーザーでデータベースに接続はしません。そのため、パーシング・スキーマのアカウントがロックされていても、アプリケーションは動作します。
データベース・アクション(SQL Developer Web)や、SQLclのようなツールでパーシング・スキーマのデータベース・ユーザーで接続する場合は、そのアカウントがロックされていると接続できません。
APEXの開発ツールにサインインする際に「アカウントがロックされています。」というエラーが発生した場合は、APEXユーザーのステータスとデータベースのユーザーのステータスの両方を確認する必要があります。
今回の記事は以上になります。
完