Не удается подключиться к локальному Firebird с ISQL
Я пытаюсь настроить локальный экземпляр firebird для тестирования, но не могу подключиться к нему даже с помощью ISQL. Я попытался следовать, следуя руководству быстрого запуска здесь:
CONNECT ..examplesempbuildemployee.fdb user SYSDBA password masterkey;
в результате которых:
Statement failed, SQLSTATE = 08001
unavailable database
после некоторого поиска я попытался изменить это на:
CONNECT "localhost:C:Program FilesFirebirdFirebird_2_5examplesempbuildemployee.fdb" user SYSDBA password masterkey;
в результате которых:
Statement failed, SQLSTATE = 28000
cannot attach to password database
после подтверждения у меня был правильный путь к каталогу, который я решил дать на подключение сейчас и попробовать создание новой БД:
SQL>CREATE DATABASE 'C:datatest.fdb' page_size 8192
CON>user 'SYSDBA' password 'masterkey';
что также дало мне ошибку:
Statement failed, SQLSTATE = 08001
unavailable database
есть ли какие подводные камни меня могут бить? Я также пробовал команды выше как с, так и без запуска службы firebird. Также есть подробная ссылка на коды SQLSTATE?
1 ответов
Как уже упоминалось в моих комментариях, проблема вызвана запуском сервера Firebird в качестве приложения. Firebird имеет свою базу данных паролей (security2.fdb
) в C:\Program Files\Firebird\Firebird_2_5
. Поскольку эта база данных является (почти, но не полностью) обычной базой данных Firebird, сервер требует доступа на запись в эту базу данных (для транзакций и т. д.).
по умолчанию (с UAC) пользователи не имеют доступа на запись в базу данных паролей, поэтому для этого требуется повышение до администратора. Поэтому доступ к Firebird требует, чтобы вы либо запускали приложение как службу с достаточными правами (например, как это сделано установщиком по умолчанию), либо при запуске сервера как приложения для запуска его "как администратора". Другой вариант-не устанавливать его в Program Files.
этот BTW применяется дважды при доступе к базе данных сотрудника примера, поскольку этот файл базы данных также находится в папке Program Files.