Ошибка ORA-28001: the password has expired — отключение срока действия пароля
- Пользователи и службы не могут авторизоваться в СУБД с ошибкой
ORA-28001: the password has expired. - В
DBA_USERSстатус учетной записи изменился наEXPIRED. - Временные предупреждения
ORA-28002: the password will expire within N daysбыли проигнорированы.
1. Проверка срока действия паролей пользователей
SELECT u.username, u.account_status, u.expiry_date, u.profile, p.limit AS life_time_days
FROM dba_users u
JOIN dba_profiles p ON u.profile = p.profile
WHERE p.resource_name = 'PASSWORD_LIFE_TIME'
ORDER BY u.expiry_date ASC;2. Смена пароля и активация учетной записи
ALTER USER app_user IDENTIFIED BY "CurrentOrNewPassword123";3. Отключение срока истечения пароля в профиле (PASSWORD_LIFE_TIME)
Для предотвращения повторения ошибки установите бесконечный срок действия:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_GRACE_TIME UNLIMITED;4. Создание отдельного профиля для сервисных учетных записей 1С
CREATE PROFILE service_app_profile LIMIT
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
FAILED_LOGIN_ATTEMPTS UNLIMITED;
ALTER USER usr1cv8 PROFILE service_app_profile; Частые вопросы (FAQ)
Можно ли продлить пароль, установив тот же самый старый пароль?
Да, если профиль не содержит проверки истории паролей (PASSWORD_REUSE_TIME / PASSWORD_REUSE_MAX), можно просто выполнить ALTER USER user_name IDENTIFIED BY "старый_пароль"; статус сразу сменится на OPEN.
Что означает параметр PASSWORD_GRACE_TIME?
Это льготный период (в днях) после истечения PASSWORD_LIFE_TIME, в течение которого пользователю разрешается вход в систему с выводом предупреждения ORA-28002 для смены пароля.
Как сменить пароль пользователя без знания старого пароля от имени SYSDBA?
Администратор SYSDBA может переопределить пароль в любой момент прямой командой: ALTER USER user_name IDENTIFIED BY "новый_пароль";
Почему после обновления Oracle 19c пароли внезапно стали экспайриться через 180 дней?
В профиле DEFAULT по умолчанию задано значение PASSWORD_LIFE_TIME = 180. Если профиль не был перенастроен в UNLIMITED, через полгода после создания базы все учетные записи переходят в статус EXPIRED.