Ошибка ORA-28000: the account is locked — разблокировка учетной записи Oracle
- При попытке авторизации возвращается ошибка
ORA-28000: the account is locked. - Учетная запись пользователя 1С или сервиса заблокирована из-за превышения числа неудачных попыток ввода пароля.
- Статус учетной записи в
DBA_USERSравенLOCKEDилиLOCKED(TIMED).
1. Проверка статуса учетной записи
SELECT username, account_status, lock_date, expiry_date, profile
FROM dba_users
WHERE username = 'APP_USER';2. Разблокировка пользователя
ALTER USER app_user ACCOUNT UNLOCK;3. Отключение автоматической блокировки в профиле (PASSWORD_LOCK_TIME)
Для служебных учетных записей 1С и интеграций отключите лимит неудачных попыток входа:
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LOCK_TIME UNLIMITED;4. Поиск IP-адреса хоста, который вводит неверный пароль
SELECT os_username, userhost, terminal,
TO_CHAR(timestamp, 'YYYY-MM-DD HH24:MI:SS') AS login_time,
returncode
FROM dba_audit_trail
WHERE username = 'APP_USER' AND returncode = 1017
ORDER BY timestamp DESC; Частые вопросы (FAQ)
В чем разница между статусами LOCKED и LOCKED(TIMED)?
LOCKED означает, что учетная запись была заблокирована администратором вручную. LOCKED(TIMED) означает, что блокировка произошла автоматически из-за неверных паролей и снимется сама по истечении PASSWORD_LOCK_TIME.
Почему разблокированная учетная запись блокируется снова через несколько минут?
На одном из серверов кластера или в фоновом скрипте остался запущен процесс со старым сохраненным паролем, который продолжает циклически долбиться в базу с ошибкой ORA-01017.
Как сбросить пароль и разблокировать пользователя одной командой?
Выполните: ALTER USER app_user IDENTIFIED BY "NewPassword123" ACCOUNT UNLOCK;
Как включить аудит неудачных попыток входа в СУБД?
Выполните команду аудита: AUDIT SESSION WHENEVER NOT SUCCESSFUL;