К сожалению, то, что вы хотите, не возможно.У Firebird нет концепции соединений только для чтения.Каждое соединение должно иметь возможность записывать информацию в базу данных для администрирования транзакций (это относится даже к транзакциям только для чтения).
Единственное исключение относится к базам данных, которые были помечены как база данных только для чтения с использованием gfix .В этом случае транзакции добавляются к идентификатору последней совершенной транзакции.Тем не менее, пометка базы данных только для чтения сделает ее доступной только для чтения для всех соединений.
Если вашему приложению нужен доступ только для чтения, а другим приложениям нужен доступ на запись в ту же базу данных, единственным решением является использованиеСервер Firebird * и используйте пользователей (и роли), чтобы назначить достаточные права для чтения, но не записи в базу данных.
*: Firebird Embedded может быть достаточно, но в качествеЗатем пользователю необходим доступ на чтение / запись к базе данных, было бы проще обойти эту форму контроля доступа для злоумышленников.