В Jaybird 3 или выше и Firebird 3 или выше эта ошибка может быть результатом отсутствия имени пользователя или пароля. Отсутствие имени пользователя или пароля приводит к тому, что Jaybird не пытается использовать какой-либо плагин аутентификации. Это приводит к тому, что Firebird отклоняет попытку подключения, поскольку должна быть сделана хотя бы одна попытка аутентификации.

аюсь подключиться к базе данных Firebird с помощью драйвера jaybird jdbc. Firebird работает под Ubuntu. Я создал простую базу данных, расположенную в /tmp/hellofb.fdb (да, не самое лучшее место, только для тестирования). Я использую Firebird Superserver 3.0. Служба Firebird запущена и работаетsudo service firbird3.0 status:

firebird3.0.service - Firebird Database Server ( SuperServer )
   Loaded: loaded (/lib/systemd/system/firebird3.0.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2017-10-25 22:40:53 CEST; 25min ago
  Process: 23411 ExecStart=/usr/sbin/fbguard -pidfile /run/firebird3.0/default.pid -daemon -forever (code=exited, status=0/SUCC
 Main PID: 23412 (fbguard)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/firebird3.0.service
           ├─23412 /usr/sbin/fbguard -pidfile /run/firebird3.0/default.pid -daemon -forever
           └─23413 /usr/sbin/firebird

Okt 25 22:40:53 XPS-L322X systemd[1]: Starting Firebird Database Server ( SuperServer )...
Okt 25 22:40:53 XPS-L322X systemd[1]: Started Firebird Database Server ( SuperServer ).

Мой весенний загрузочный файл application.properties имеет вид:

spring.datasource.url:jdbc:firebirdsql://localhost:3050//tmp/hellofb.fdb
spring.datasource.driverClassName:org.firebirdsql.jdbc.FBDriver

Однако, когда я пытаюсь подключиться к базе данных, я получаю следующее исключение:

org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544421. connection rejected by remote interface

Я перепробовал все возможные перестановки, данныеJaybird FAQУ меня заканчиваются варианты. Любая помощь будет принята с благодарностью!

Запись: Я попытался подключиться к базе данных с помощью Flamerobin, и все работает просто отлично

 Mark Rotteveel26 окт. 2017 г., 11:32
Также скажите, используйте значение настройкиIPv6V6Only.
 Mark Rotteveel26 окт. 2017 г., 08:17
Какая версия Firebird, какая версия Jaybird, каковы значенияAuthServer а такжеWireCrypt в firebird.conf?

Ответы на вопрос(1)

Решение Вопроса

о которой я просил, в комментариях, я должен предположить, что вы используете Firebird 3 с Jaybird 2.2.x, основываясь на описанном поведении.

Ошибкасоединение отклонено удаленным интерфейсом также может происходить при других условиях, чем описано ниже.

Возможная причина: требуется шифрование проводного протокола

Firebird 3 представляет ряд новых функций безопасности, которые включены по умолчанию, но не поддерживаются Jaybird 2.2. Чтобы Jaybird 2.2 мог подключаться к Firebird 3, вам нужно ослабить некоторые из этих настроек.

Чтобы подключить Jaybird 2.2.x, вам нужно изменить следующие настройки вfirebird.conf (и перезапустите Firebird после изменения настроек):

РасслабитьсяWireCrypt установка по умолчаниюRequired вEnabled:

WireCrypt = Enabled

Включите поддержку устаревшего протокола аутентификации:

AuthServer = Srp, Legacy_Auth

Затем вам нужно убедиться, что пользователь, которого вы хотите использовать для подключения к Firebird, создан с помощью устаревшего usermanager, включив поддержку устаревшего usermanager:

UserManager = Srp, Legacy_UserManager

Перезапустите Firebird, чтобы применить эти настройки, а затем - во Flamerobin - с учетной записью SYSDBA (или пользователем с ролью RDB $ ADMIN) создайте требуемого пользователя:

CREATE USER youruser PASSWORD 'yourpasw' USING PLUGIN Legacy_UserManager

В качестве альтернативы вы можете перейти на Jaybird 3.0.4 или выше, который поддерживаетSrp протокол аутентификации и шифрование проводного протокола.

Эти настройки более подробно описаны в нашей вики в статьеСойка и Жар-птица 3, Эта информация отсутствовала в нашем FAQ, теперь я добавил ее всоединение отклонено удаленным интерфейсом (335544421).

Возможная причина: нет имени пользователя или пароля

В Jaybird 3 или выше и Firebird 3 или выше эта ошибка может быть результатом отсутствия имени пользователя или пароля. Отсутствие имени пользователя или пароля приводит к тому, что Jaybird не пытается использовать какой-либо плагин аутентификации. Это приводит к тому, что Firebird отклоняет попытку подключения, поскольку должна быть сделана хотя бы одна попытка аутентификации.

Ваш ответ на вопрос