Подтвердить что ты не робот

Ошибка Firebird "имя пользователя и пароль не определены" с приложением Delphi

У меня есть приложение, сделанное с Delphi 2006 и Firebird 2.5. Для подключения используйте компоненты Interbase из Delphi. Я устанавливаю во время разработки базу данных TIB с именем пользователя, паролем tc и работаю нормально, но когда я хочу запустить приложение на другом ПК (сначала я устанавливаю Firebird 2.5 на него), я получил эту ошибку:

Statement failed, SQLSTATE = 28000

Ваше имя пользователя и пароль не определены. Попросите администратора базы данных настроить учетную запись Firebird.

Что это? Как я могу это решить?

4b9b3361

Ответ 1

В сообщении четко указано, что имя пользователя и пароль, которые вы используете для подключения во время разработки на вашей машине разработки, недействительны для сервера базы данных, который вы пытаетесь подключить на другом компьютере (позвольте назвать его производством). Из вашего сообщения кажется, что это не тот самый сервер, с которым вы подключаетесь во время разработки.

Я предлагаю вам протестировать эту проблему с легкостью, чтобы свойство LoginPrompt было равно true в компоненте TIBDatabase, чтобы позволить ему запрашивать у пользователя учетные данные propper перед подключением. Вы сможете подключиться, используя любую действительную комбинацию имени пользователя и пароля для этого сервера. Чтобы убедиться, что комбинация действительна, попробуйте подключиться с помощью инструмента командной строки isql, например команду

c:\test>isql test.fdb -u sysdba -p masterkey

подключится к c:\test\test.fdb, используя имя пользователя и пароль по умолчанию. (корневой каталог firebird должен находиться в переменной среды пути, чтобы это работало)

Кроме того, вы можете использовать инструмент командной строки gsec для настройки пароля для этого движка, или вы можете обеспечить создание пользователей и изменение паролей на этом производственном компьютере, прежде чем пытаться подключиться к нему.

В Windows пароль sysdba по умолчанию для firebird - masterkey.

Ответ 2

В 'isql-fb' из терминала linux и после 'CONNECT' в базе данных:  - Я решил после удаления (drop) и воссоздал пользователя SYSDBA.

Наблюдение: у меня были проблемы с разрешением файла и папки на '/tmp/firebird', и мне нужно было использовать 'sudo' или root для открытия 'isql-fb'

Спасибо.

Ответ 3

Эта ошибка связана с тем, что учетные данные для Firebird db просто не сохраняются в файле базы данных. Он хранится в файле конфигурации на сервере Firebird. Если вы скопируете файл DB, а не пароль, у вас будет другой пароль.

На машинах Ubuntu вы можете узнать пароль и имя пользователя в файле, /etc/firebird/<version>/SYSDBA.password

Он будет выглядеть примерно так:

ISC_USER=sysdba
ISC_PASSWORD="password"

Используйте эти учетные данные для подключения к файлу базы данных.