Забыли имя пользователя и пароль базы данных * fdb (firebird).Могу ли я взломать эту базу данных? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть база данных firebird более 8 ГБ, и я хочу перенести все данные из нее.Но я забыл имя пользователя и пароль.Есть ли какой-либо или какой-нибудь инструмент, с помощью которого я могу взломать эту базу данных и вернуть свои данные?

1 Ответ

0 голосов
/ 26 сентября 2018

В большинстве установок Firebird имя пользователя и пароль хранятся в центральной базе данных безопасности (security3.fdb в случае Firebird 3).Если вы больше не знаете имя пользователя и пароль пользователя, у вас есть следующие опции:

Имейте в виду, этот ответ использует Firebird 3 в качестве основы, но большинство опций также применимы к Firebird 2.5 и более ранним версиям.Вместо security3.fdb используйте security2.fdb.Шаги create user и alter user работают только в Firebird 2.5 или выше.

  1. Используйте учетную запись sysdba (или другого пользователя с ролью RDB$ADMIN в базе данных безопасности) для сброса пароляпользователь через любую другую базу данных
  2. Используйте gsec в качестве SYSDBA во встроенном режиме для сброса пароля
  3. Замените базу данных безопасности на копию с известным паролем для пользователя

Если ваша база данных использует себя в качестве базы данных безопасности, вам сначала нужно удалить этот параметр из 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затем можно использовать эту базу данных для более ранних шагов.

...