В Firebird отсутствует плагин для управления пользователями

Когда я пытаюсь открыть Диспетчер пользователей или просто делаю select * from sec$users, я получаю сообщение об ошибке Отсутствует подключаемый модуль управления пользователями.

Я уже видел в некоторых сообщениях, как установить usermanager из firebird.conf, добавив Srp, Srp256, Legacy_UserManager и перезапустить службу, но ошибка продолжается.


person Fernando Donizeti Ito    schedule 24.01.2020    source источник
comment
В Firebird нет подключаемого модуля управления пользователями под названием Srp256. Плагин управления пользователями Srp охватывает Srp и все SrpNNN плагины аутентификации. Я бы предположил (но сейчас у меня нет под рукой установки), что тот факт, что вы настроили его с помощью Srp, Srp256, Legacy_UserManager, является фактической причиной вашей проблемы. Попробуйте изменить его на Srp, Legacy_UserManager   -  person Mark Rotteveel    schedule 24.01.2020
comment
Привет, Марк, я тоже только что попробовал, с Srp, Legacy_UserManager, только Srp, только Legacy_UserManager даже прокомментировал эту строку, но не работает.   -  person Fernando Donizeti Ito    schedule 24.01.2020
comment
Вы перезапускали Firebird после изменения конфигурации? В firebird.log есть что-нибудь?   -  person Mark Rotteveel    schedule 24.01.2020
comment
Да, я перезапустил и проверил журнал, ничего.   -  person Fernando Donizeti Ito    schedule 24.01.2020
comment
В любом случае, я только что проверил это, я получаю сообщение об ошибке, если у меня есть несуществующий менеджер пользователей в списке (например, Srp256), ошибка исчезает, если я удаляю неправильный менеджер пользователей. Единственный другой способ воспроизвести это - если необходимый плагин не существует в папке plugins установки Firebird (т.е. srp.dll или legacy_usermanager.dll (или .so в Linux)).   -  person Mark Rotteveel    schedule 24.01.2020
comment
Я могу получить доступ к другим базам данных, только к этой конкретной, к которой я не могу, возможно ли, что старший программист добавил другого пользователя с неизвестным плагином sec$ через IbExpert?   -  person Fernando Donizeti Ito    schedule 24.01.2020
comment
Насколько я знаю, пользователи, созданные неизвестным менеджером пользователей, пропускаются при выборе из sec$users (или, по крайней мере, если я удаляю legacy_usermanager из своего конфига, я вижу только тех, кто создан с помощью Srp). Возможно ли, что у вас есть явная конфигурация менеджера пользователей в databases.conf для этой базы данных? В противном случае вы можете рассмотреть вопрос о том, чтобы задать свой вопрос в списке рассылки поддержки firebird.   -  person Mark Rotteveel    schedule 24.01.2020
comment
Я только что ничего не проверил в databases.conf, Марк, я нашел engine12.dll в папке с плагинами, я попробовал сейчас, и сообщение об ошибке изменилось, теперь оно говорит, что engine12 не содержит плагин engine12 типа 5, есть идеи?   -  person Fernando Donizeti Ito    schedule 24.01.2020
comment
engine12.dll — это движок базы данных Firebird, а не плагин для управления пользователями. Если ваша папка plugins не содержит srp.dll и legacy_usermanager.dll, проблема в этом.   -  person Mark Rotteveel    schedule 24.01.2020
comment
не имеет, где я могу найти эти DLL?   -  person Fernando Donizeti Ito    schedule 24.01.2020
comment
Вы можете загрузить программу установки Firebird или zipkit с firebirdsql.org/en/firebird-3. -0 (в настоящее время ссылка указывает на версию 3.0.5, последнюю версию Firebird 3). Если вы в настоящее время используете более раннюю версию Firebird 3, я бы порекомендовал обновить ее, а не только заменить эти библиотеки DLL.   -  person Mark Rotteveel    schedule 24.01.2020
comment
Кстати: тот факт, что они отсутствуют, указывает на то, что они были намеренно удалены тем, кто устанавливал Firebird. Возможно, вы захотите проверить, почему это было сделано.   -  person Mark Rotteveel    schedule 24.01.2020
comment
@MarkRotteveel, я бы не стал параноиком из-за одного случая. Антивирусные инструменты, в том числе Microsoft Update MRT, иногда проделывают очень любопытные трюки, включая целенаправленное уничтожение драйверов безопасности (ключей HASP) или конкурирующих антивирусных решений. Если эта проблема с SRP будет повторяться, то для этой папки следует включить системный аудит, проверяя, каким пользователем, процессом и временем был удален плагин. Но надеюсь, это был разовый глюк.   -  person Arioch 'The    schedule 24.01.2020
comment
@Arioch'Я скорее думаю, что администратор удалил эти плагины, чтобы предотвратить создание, изменение или удаление пользователей. Ваше предположение о том, что антивирусное программное обеспечение будет удалять файлы случайным образом, кажется скорее примером паранойи.   -  person Mark Rotteveel    schedule 24.01.2020
comment
@Марк - здесь то же самое. Я считаю идею случайного удаления программных модулей человеком, не зная их функций, признаком паранойи. Хотя ложные срабатывания от AV имеют прецеденты.   -  person Arioch 'The    schedule 25.01.2020


Ответы (1)


Единственная известная мне причина этой ошибки — указание несуществующего имени плагина.

Это может быть в двух формах:

  • Указание несуществующего менеджера пользователей. Например, Srp256 существует только как подключаемый модуль аутентификации, но не как подключаемый модуль диспетчера пользователей. Вы используете Srp в качестве менеджера пользователей для всех плагинов аутентификации SrpXXX. Технически это частный случай второй формы ниже.
  • Библиотека, содержащая подключаемый модуль менеджера пользователей, отсутствует в папке plugins установки Firebird. Для менеджера пользователей Srp нужно иметь srp.dll (или srp.so), для Legacy_UserManager нужно иметь legacy_usermanager.dll (или legacy_usermanager.so).

Неправильные права доступа к файлам и папкам также могут вызывать такое поведение (хотя я этого не проверял), например, если пользователь, запускающий процесс Firebird, не имеет прав на чтение папки plugins или определенных файлов плагинов.

person Mark Rotteveel    schedule 24.01.2020
comment
Вот и все, друг мой, в папке плагинов отсутствовала srp.dll, извините, у вас нет необходимой репутации, чтобы проголосовать за ваш ответ, но огромное спасибо! - person Fernando Donizeti Ito; 24.01.2020
comment
@FernandoDonizetiIto Добро пожаловать. Вы должны быть в состоянии принять (нажав галочку на вопросе), но у него может быть тайм-аут, прежде чем вы сможете принять. - person Mark Rotteveel; 24.01.2020