Содержание
Установка СУБД Firebird 5 в Ubuntu 22.04
В комплекте с DataExpress идут встроенные серверы баз данных Firebird 2.5 и 5. Они позволяют работать с базой данных одному пользователю. Но если планируется совместная работа с базой данных множества пользователей, то вам необходимо установить дополнительное программное обеспечение — СУБД Firebird.
Обычно СУБД Firebird устанавливают на отдельный компьютер, выполняющий роль сервера. Это не обязательно должен быть мощный сервер, достаточно бюджетного офисного ПК.
В данном руководстве мы будем устанавливать Firebird на виртуальный сервер VDS под управлением операционной системы Ubuntu 22.04. Это обеспечит нам доступ к базе данных через интернет, где бы мы ни находились.
Устанавливать будем Firebird версии 5. Данную версию следует устанавливать, если у вас база данных в новом формате DXDB.
Если у вас база данных в старом формате FDB, то воспользуйтесь утилитой DataExpress Convert Tool, чтобы преобразовать базу к новому формату.
Предполагается, что вы только что установили систему. Первым делом обновим систему:
# apt update # apt upgrade
Перед установкой Firebird установим требуемый пакет:
# apt install libtommath-dev
Скачаем и установим Firebird в каталог /opt/firebird:
# cd /opt # wget https://github.com/FirebirdSQL/firebird/releases/download/v5.0.2/Firebird-5.0.2.1613-0-linux-x64.tar.gz # tar xvzf Firebird-5.0.2.1613-0-linux-x64.tar.gz # cd Firebird-5.0.2.1613-0-linux-x64 # ./install.sh
В процессе установки вам будет предложено установить пароль SYSDBA. Если вы только пробуете работать с удаленной базой, лучше задать стандартный пароль masterkey. В этом случае настраивать подключение к базе данных в DataExpress будет чуть проще, т. к. программа знает про стандартный пароль. В дальнейшем, для безопасности, пароль стоить поменять (об этом чуть позже).
Обязательная настройка Firebird после установки!
В отличии от СУБД Firebird 2.5, новую версию необходимо немного настроить для корректной работы программы DataExpress. Откройте в редакторе файл firebird.conf:
# mcedit /opt/firebird/firebird.conf
Далее найдите и раскомментируйте (уберите символ решетки) следующие параметры:
ReadConsistency = 0 DataTypeCompatibility = 2.5
После сохранения перезапустите firebird:
# systemctl restart firebird
Загрузка базы данных на сервер
Загрузите базу данных на сервер любым удобным способом. Это можно сделать с помощью программ FileZilla, WinSCP или через панель управления вашего сервера (если установлена).
Например, создайте каталог /opt/bases и загрузите в него базу. В нашем примере это будет демобаза DEMO_DB.DXDB.
Чтобы СУБД Firebird могла получить доступ к файлу, назначьте владельцем файла пользователя firebird:
# cd /opt/bases # chown firebird DEMO_DB.DXDB
Может быть такое, что Firebird все равно не может работать с базой. При попытке подключения к базе программа сообщает об ошибке: Permission denied. В этом случае проверьте, чтобы у всех каталогов в пути были права на выполнение. Если этих прав нет, то установите их:
# chmod 755 /opt/bases
Подключение к базе данных
Теперь настроим подключение к базе данных в программе DataExpress. Запускаем программу и открываем менеджер подключений: меню Файл — Подключиться (или клавиша F6).
IP-адрес и путь к базе данных, разумеется, нужно ввести свои. Сохраняем и пробуем подключиться.
Обратите внимание как задается строка подключения. Краткий формат строки подключения: IP-адрес:ПолныйПутьКБазеДанных
или ИмяДомена:ПолныйПутьКБазеДанных
. Более подробно об этом здесь.
Настройка алиасов
В целях безопасности и удобства вы можете задать алиас (псевдоним) базы данных. Тогда вместо пути к базе данных вам достаточно будет указать алиас. Алиасы прописываются в файле databases.conf:
# cd /opt/firebird # mcedit databases.conf
Добавим в конец файла строку:
demodb = /opt/bases/DEMO_DB.DXDB
Теперь в строке подключения достаточно будет ввести: 18.43.8.70:demodb
Меняем порт сервера Firebird
Также в целях безопасности рекомендуют изменить стандартный порт Firebird 3050 на какой-нибудь другой. Для примера пусть будет порт 3090. Для этого нужно отредактировать файл firebird.conf:
# mcedit /opt/firebird/firebird.conf
Находим параметр RemoteServicePort, раскомментируем его (убираем символ решетки) и вводим порт 3090. Сохраняем файл и перезапускаем службу firebird:
# systemctl restart firebird
Теперь, когда мы поменяли порт, строка подключения немного изменится. После IP-адреса или имени хоста через слэш указывается порт:
18.43.8.70/3090:demodb
Изменение пароля SYSDBA
Введите в терминале следующие команды:
# cd /opt/firebird/bin # ./gsec -user SYSDBA -password masterkey -modify SYSDBA -pw <ваш новый пароль>
Не забудьте в параметрах подключения указать новый пароль SYSDBA, иначе получите ошибку при подключении.
Настройка подключение клиентов Firebird 2.5 к серверу Firebird 5
Если вы счастливый пользователь Линукс и запускаете DataExpress через Wine, вам это может пригодиться. Клиент Firebird 5 (fb5\fbclient.dll) не работает в Wine, остается только пользоваться клиентом версии 2.5. Но для этого нужно настроить сервер, чтобы он принимал соединения от старых клиентов.
Для этого в файл /opt/firebird/firebird.conf внесите следующие изменения:
AuthServer = Srp256, Legacy_Auth UserManager = Srp, Legacy_UserManager WireCrypt = Enabled
После сохранения изменений перезапустите сервер:
# systemctl restart firebird
Все. Теперь вы свободно можете подключаться к новому серверу. Не забудьте в программе отключить поддержку баз данных нового формата, чтобы программа не пыталась загружать клиентскую библиотеку Firebird 5.
Дополнительная база безопасности
В Firebird 5 есть возможность задать для каждой базы данных свою базу безопасности. Таким образом у каждой базы данных будет свой пароль SYSDBA.
Сделайте копию существующей базы безопасности:
# cd /opt/firebird # cp security5.fdb mysecurity.fdb
Задайте для файла права доступа:
# chown firebird mysecurity.fdb # chmod 660 mysecurity.fdb
Для нашего алиаса укажем новую базу безопасности.
# mcedit /opt/firebird/databases.conf
demodb = /opt/bases/DEMO_DB.DXDB { SecurityDatabase = /opt/firebird/mysecurity.fdb } <code> С помощью утилиты isql назначим пароль: <code> # cd /opt/firebird/bin # ./isql SQL> connect demodb; SQL> alter user sysdba set password 'Qwerty123';
Если у вас настроено подключение старых клиентов, то назначаем пароль и для Legacy_UserManager:
SQL> alter user sysdba set password 'Qwerty123' using plugin Legacy_UserManager;
Выходим:
SQL> exit;