===== Смена пароля пользователя SYSDBA в СУБД Firebird 2.5 ===== {{:firebird:pasted:20181106-233707.png }} Одним из первых мероприятий по защите вновь развёрнутого экземпляра **Firebird** является обязательная смена пароля, используемого по умолчанию для учётной записи администратора экземпляра. В каждом вновь развёрнутом экземпляре Firebird присутствует пользователь с именем **SYSDBA**, который имеет полные привилегии в рамках этого экземпляра. Пароль по умолчанию для данного пользователя **masterkey** (на самом деле **masterke**, так как для пароля символы после восьмого игнорируются). В целях безопасности сразу после запуска нового экземпляра Firebird мы должны сменить пароль этого пользователя. Перейдём в каталог с исполняемыми файлами экземпляра Firebird и с помощью утилиты **gsec** подключимся к базе данных пользователей (файл **security2.fdb** в каталоге с экземпляром) командой следующего вида:
cd /d D:\FBInst1\Bin\bin
gsec -user sysdba -password masterke -database "localhost/3051:D:\FBInst1\Bin\security2.fdb"
{{ :firebird:pasted:20181107-115226.png }} Войдя в интерактивный режим работы с утилитой gsec, выполняем команду смены пароля:
modify sysdba -pw newP@s$w
При указании пароля помните про то, что **Firebird 2.5** игнорирует в пароле символы больше восьмого, поэтому задавать пароль длинной больше 8 символов нет смысла. Обратите внимание на то, какой мы используем путь к файлу БД **security2.fdb**. Это __важный момент__ для конфигураций, когда на одном сервере выполняется несколько экземпляров Firebird. Если мы попытаемся использовать простое указание локального пути на файловой системе вида **D:\FBInst1\Bin\security2.fdb**, то можем столкнуться со странной ситуацией, при которой оба запущенных экземпляра Firebird будут пытаться использовать один и тот же файл **security2.fdb**. Это может вызвать серьёзную путаницу при работе с утилитой **gsec** для настройки двух разных экземпляров. Именно поэтому лучше использовать __подключение к экземпляру через протокол TCP__, явно указывая адрес хоста и порт экземпляра Firebird, а также относящийся к нему файл **security2.fdb**. После того, как пароль задан, завершим сессию работы с утилитой **gsec** с помощью команды **quit** и вновь попробуем воспользоваться этой утилитой, но уже при подключении укажем новый пароль, убедившись тем самым в том, что старый пароль по умолчанию больше не работает, а используется новый установленный нами пароль. {{ :firebird:pasted:20181107-115247.png }} Описанным способом меняем пароль, используемый по умолчанию, для пользователя **SYSDBA** __на всех отдельный экземплярах Firebird__. Разумеется, для разных экземпляров при этом в целях безопасности лучше использовать разные пароли. Кстати входить в интерактивный режим работы с утилитой **gsec** для смены пароля SYSDBA не обязательно. Можно выполнить смену пароля одной командой, указав в ней и действующий в экземпляре пароль и новый пароль, который необходимо установить. Посмотрим, как это делается на примере нашего второго экземпляра:
cd /d E:\FBInst2\Bin\bin
gsec -user sysdba -password masterke -database "localhost/3052:E:\FBInst2\Bin\security2.fdb" -modify sysdba -pw newPAz$w
{{ :firebird:pasted:20181107-115309.png }} И опять же. Для проверки, после смены пароля, попытаемся подключиться к базе данных **security2.fdb**, относящейся к нашему второму экземпляру Firebird, сначала со старым паролем, который ранее был установлен по умолчанию, а затем с тем паролем, который мы задали. {{ :firebird:pasted:20181107-115322.png }} Результат должен быть предсказуемым. Таким образом, мы заменили пароль пользователя **SYSDBA** на всех экземплярах Firebird, улучшив тем самым уровень их безопасности. ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ Версия Firebird ^ | Windows Server 2012 R2 Standard EN (6.3.9600) | 2.5.8 32-bit | | Windows Server 2012 R2 Standard EN (6.3.9600) | 2.5.9 64-bit | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 06.11.2018 23:01 {{tag>Firebird "Firebird 2.5" RDBMS DBMS Instance "Windows Server" SYSDBA Password Security GSEC}} ~~DISCUSSION~~