Похоже, вы не доверяете разработчикам в написании хороших запросов.
Это, вероятно, из опыта.
Я бы предположил, что если плохие разработчики пишут дерьмовый код SQL, они также пишут плохой код приложения, а это означает, что управление делает плохую работу.
Проблема не в динамическом SQL (даже если он параметризован) в сравнении с хранимыми процедурами, а в плохом управлении.
Это не будет решено принудительным доступом к базе данных через хранимые процедуры.
В любом случае, даже если доступ к БД обеспечивается только с помощью хранимых процедур, плохие кодеры все равно будут способны нагрузить базу данных.
Реальность такова, что если вы затрудняете доступ к данным в базе данных, разработчики будут использовать другие методы, чтобы не помещать данные в базу данных или извращать базу данных. Например, скажем, у вас есть поле блога для хранения PDF-файлов или чего-то еще, что мешает им сериализовать объекты и сохранять их в BLOB-объектах, чтобы их можно было извлечь и десериализовать в коде?
Я был бы осторожен с этим.
Убедитесь, что хранимые процедуры попадают в систему контроля версий, и что развертывание хранимых процедур в соответствующей среде базы данных может выполняться автоматически инструментом построения (непрерывно или ежедневно) ...