Пошагово, если раньше этого не делали
Нам нужно две вещи: чтобы наш сервер видел вашу базу по сети и чтобы у нас была учётная запись с правом читать. Всё остальное — наша работа.
Мы подключаемся к Firebird по сети и только читаем. Режим чтения включается на уровне транзакции: любая попытка записи отклоняется самой СУБД ошибкой SQLCODE −817 — не нашим обещанием, а Firebird. Ни одна строка в вашей базе не меняется.
Firebird слушает порт 3050. Машина, где будет стоять продукт, должна видеть сервер с базой по этому порту. Если между ними межсетевой экран — откройте 3050 только с адреса нашего сервера, а не наружу целиком.
Если продукт будет жить на нашем сервере, нужен внешний доступ; если на вашем — достаточно локальной сети.
Не обязательно, но так надёжнее: у нас на руках не будет реквизитов, которыми в принципе можно писать. Выполните под администратором базы:
CREATE USER GROWVEND PASSWORD 'длинный-пароль';
Права Firebird даёт по таблицам, а не на базу целиком, — поэтому список команд сначала генерируется запросом, а потом выполняется:
SELECT 'GRANT SELECT ON ' || TRIM(RDB$RELATION_NAME) || ' TO GROWVEND;' FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0 AND RDB$RELATION_TYPE IN (0, 1);
Результат скопировать и выполнить. Отозвать доступ потом — одна команда: DROP USER GROWVEND;
Если баз у вас несколько — например, снеки и кофе заведены отдельно, — повторите в каждой.
Если не хотите заводить пользователя — подойдёт и существующая учётная запись. Тогда защита держится на нашей стороне, режимом чтения.
Самый быстрый способ на Windows — стандартный ODBC-конфигуратор. Нам он не нужен: мы подключаемся к базе напрямую. Но кнопкой «Проверка соединения» вы за минуту убедитесь, что адрес, путь и пароль рабочие — и не будете гадать, если у нас что-то не соединится.
Откройте «ODBC Data Sources (64-bit)» — приложение есть в любой Windows. Вкладка System DSN, кнопка Add.
Выберите Firebird/InterBase driver. Если его нет в списке — скачайте с firebirdsql.org и установите, после этого он появится.
Заполните поля. База данных — в виде адрес/3050:путь\к\файлу.gdb. Клиент — путь к fbclient64.dll. Символьная таблица обычно WIN1251, диалект 3.
Обязательно отметьте «read» в блоке «Инициализация транзакции» — по умолчанию источник открывается на запись.
Нажмите «Проверка соединения». Ответило — реквизиты рабочие.
⚠️ Эта галочка защищает только этот источник на этой машине. Правами учётной записи она не управляет: другое приложение с теми же реквизитами будет писать свободно. Настоящее ограничение — шаг 2.
IP сервера с базой и порт (по умолчанию 3050 — укажите свой, если меняли), путь к файлу базы, логин и пароль, версию Firebird. Если баз несколько — путь к каждой. Пароли — личным сообщением, не в общем чате.