Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ORA-01017 1С:Предприятие и СУБД

Ошибка ORA-01017: invalid username/password в Oracle DB — решение

Обновлено: 26.08.2026 · Официальная документация ↗
  • Отказ в аутентификации ORA-01017: invalid username/password; logon denied.
  • Блокировка учетной записи пользователя из-за превышения счетчика FAILED_LOGIN_ATTEMPTS (код ORA-28000).
  • Сбои соединений после миграции базы на Oracle 12c/19c со старых версий (11g/10g).

1. Проверка статуса пользователя и блокировок

SELECT username, account_status, lock_date, expiry_date, profile, failed_logins
FROM dba_users
WHERE username = 'APP_USER';

2. Разблокировка учетной записи и сброс пароля

-- Разблокировка аккаунта
ALTER USER APP_USER ACCOUNT UNLOCK;

-- Установка нового пароля
ALTER USER APP_USER IDENTIFIED BY "NewSecurePass123!";

3. Проверка чувствительности к регистру (SEC_CASE_SENSITIVE_LOGON)

По умолчанию в Oracle 12c+ пароли чувствительны к регистру. Проверьте параметр:

SHOW PARAMETER sec_case_sensitive_logon;

4. Проверка поддерживаемых версий хешей паролей (SQLNET.ALLOWED_LOGON_VERSION)

Если старые клиенты (Oracle 10g/11g) не могут подключиться к 19c, проверьте файл $ORACLE_HOME/network/admin/sqlnet.ora:

SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8

После изменения параметров в sqlnet.ora необходимо заново переустановить пароль пользователя через ALTER USER.

💡 Практика специалистов: Будьте аккуратны с триггерами `AFTER LOGON ON DATABASE`. Если в коде триггера возникнет необработанное исключение (Unhandled Exception), Oracle прервет вход клиента и вернет вызывающему приложению ошибку ORA-01017 или ORA-00604.

Частые вопросы (FAQ)

Почему после изменения sqlnet.ora старый клиент все равно получает ORA-01017?

Хеши паролей старого формата (10G/11G) не генерируются задним числом. После разрешения старых протоколов в sqlnet.ora нужно явно выполнить ALTER USER user IDENTIFIED BY password;, чтобы сгенерировать совместимый хеш в sys.user$.

Как отключить блокировку учетной записи после N неудачных попыток?

Измените профиль пользователя: ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;.

Как отследить хост, с которого идут ошибочные попытки авторизации?

Используйте Unified Auditing или традиционный аудит: AUDIT LOGON WHENEVER NOT SUCCESSFUL; затем выполните выборку из dba_audit_trail (поля OS_USERNAME, USERHOST, TERMINAL).

Влияют ли пробелы или спецсимволы в пароле на ORA-01017?

Да. Если пароль содержит спецсимволы (@, #, $, !), при смене и при передаче в connection string он должен экранироваться двойными кавычками (например: IDENTIFIED BY "P@ss#123").

Полезные материалы
Рекомендуем