Поддерживаю старый продукт и поднялся вопрос о том, какой же паттерн проектирования используется.
Серверная составляющая сканирует базу данных раз в секунду на добавление новых записей в таблицах
Клиентская составляющая с помощью cgi-скрипта напрямую работает с базой данных (SELECT, INSERT, UPDATE, DELETE)
При передаче параметров cgi-скрипт передаёт параметризированные параметры.
Да, в плане SQL-инъекций не уверен, что он (cgi-скрипт) их правильно параметризирует
это не sql injection это возможность клиенту все сломать, ведь если клиенту разрешить делать прямые запросы, база данных не будет контролировать, свои ли данные клиент удаляет/правит?
реляционные базы данных имеют очень мало инструментов по контролю целостности и разграничения прав доступа по записям.
исключение - оформление всей работы через хранимые процедуры, это работает но на практике дико неудобно для разработчика.