В большинстве установок Firebird имя пользователя и пароль хранятся в центральной базе данных безопасности (security3.fdb в случае Firebird 3).Если вы больше не знаете имя пользователя и пароль пользователя, у вас есть следующие опции:
Имейте в виду, этот ответ использует Firebird 3 в качестве основы, но большинство опций также применимы к Firebird 2.5 и более ранним версиям.Вместо security3.fdb
используйте security2.fdb
.Шаги create user
и alter user
работают только в Firebird 2.5 или выше.
- Используйте учетную запись sysdba (или другого пользователя с ролью
RDB$ADMIN
в базе данных безопасности) для сброса пароляпользователь через любую другую базу данных - Используйте
gsec
в качестве SYSDBA во встроенном режиме для сброса пароля - Замените базу данных безопасности на копию с известным паролем для пользователя
Если ваша база данных использует себя в качестве базы данных безопасности, вам сначала нужно удалить этот параметр из databases.conf
, закомментировав параметр SecurityDatabase
для этой базы данных.
Для Firebird 3 этот ответпредполагает создание пользователя для механизма аутентификации Srp, а в следующих шагах предполагается, что firebird.conf
в установке Firebird имеет настройку AuthServer = Srp
(или, по крайней мере, эту настройку AuthServer
содержит Srp
) и настройку UserManager = Srp
(или, по крайней мере, Srp
- первая запись для UserManager
).
Опция 1: сброс пароля
Работает в Firebird 2.5 и выше
Подключитесь к базе данных с помощью SYSDBA (или другого пользователя с ролью администратора в базе данных безопасности) и используйте
ALTER USER <username> SET PASSWORD '<new password>';
Хотя это, вероятно, не вариант в вашем случае.
Опция 1a:сброс с помощью встроенного соединения (без пароля)
Работает в Linux для Firebird 2.5 или выше, в Windows требуется Firebird 3.0 или выше.
Остановите сервер Firebird и используйте ISQL для подключения к базе данных во встроенномрежим (для которого не требуется пароль):
isql -user sysdba <database>
При установке Firebird 3 по умолчанию вы можете использовать employee
для <database>
, что будет использовать пример базы данных сотрудника.
Измените пароль, как описано выше.В качестве альтернативы попробуйте заменить sysdba
действительным именем пользователя в командной строке isql.
Снова запустить сервер Firebird.
Опция 2: использовать gsec для изменения пароля
Работает наLinux для всех версий, в Windows это работает только для Firebird 3.0 и выше.
Имейте в виду, что gsec устарела с Firebird 3 и может быть удалена из будущих версий Firebird.
Остановите сервер Firebirdоткройте командную строку и в папке установки Firebird выполните:
gsec -user sysdba
и в приглашении gsec
modify <username> -pw <new password>
или, если пользователь еще не существует:
add <username> -pw <new password>
Запустите сервер Firebird снова.
Вариант 3: замените базу данных безопасности
Большинство этих шагов также применимы, если вы используете новую установку Firebird;просто пропустите замену базы данных безопасности.
Остановите сервер Firebird и сделайте копию вашего текущего security3.fdb в качестве резервной копии.
Получите по умолчанию security3.fdb для вашей платформы (например, загрузитеzipkit со страницы загрузки Firebird 3 ) или используйте security3.fdb с известным паролем и замените ваш текущий security3.fdb этой версией по умолчанию.Пока не запускайте Firebird.
Для более ранних версий Firebird найдите свою версию на странице загрузки .
Обычно пароль по умолчанию для sysdba - «masterkey»,но в Firebird 3 по умолчанию security3.fdb содержит этого пользователя только для устаревшего механизма аутентификации, который отключен при установке Firebird 3 по умолчанию.
Чтобы добавить пользователя sysdba, используйте встроенное соединение с любой базой данных и создайтеучетная запись sysdba.В командной строке из папки установки Firebird запустите:
isql -u sysdba <database>
В ISQL выполните:
create user sysdba password '<sysdba password>';
commit;
Чтобы добавить другого пользователя, подключитесь с помощью SYSDBA - аналогично предыдущему шагу 2 -в любую базу данных и выполните
create user <username> password '<new password>';
commit;
и выйдите из isql (с quit;
)
Затем снова запустите сервер Firebird, и вы сможете соединиться с этим пользователем и его паролем.
В большинстве этих шагов предполагается, что у вас уже есть база данных для подключения, если вы неЕсли у вас его еще есть, то вам сначала нужно его создать.
Запустите isql от имени пользователя sysdba:
isql -u sysdba
И создайте базу данных
create database '<path-of-database>';
Youзатем можно использовать эту базу данных для более ранних шагов.