Ограничить манипулирование данными от пользователя только через прикладной уровень для решения с несколькими базами данных
-
20-09-2019 - |
Вопрос
Я начинаю разработку нового программного обеспечения, которое должно быть совместимо с SQL Server (2005 и выше), Oracle (10r2 и выше) и Sybase (12.5 и выше).Я планирую реализовать абстракцию базы данных с использованием хранимых процедур, поэтому я могу использовать более производительный код, реализующий подходы, специфичные для базы данных, для каждого конкретного случая.Я планирую запретить доступ ко всей табличной информации, включая чтение данных, и разрешить доступ к информации только через хранимые процедуры.Проблема в том, что когда я предоставляю разрешение на ВЫПОЛНЕНИЕ Хранимой процедуре, которая будет использоваться для ВСТАВКИ, если пользователь подключается к базе данных через SSMS или SQL Plus, он сможет добавлять данные, вызывая процедуру напрямую, и я хотел бы предотвратить это.Я бы хотел, чтобы манипулирование данными с помощью хранимых процедур выполнялось только через мое приложение.Я мог бы предоставить отдельные логины для моего приложения и пользователей, но я хочу иметь возможность подключения моего приложения к базе данных через аутентификацию NT, используя учетные данные пользователя.Есть ли способ сделать это?
Есть ли лучший способ достичь того, чего я пытаюсь достичь?
Спасибо
Решение
Вы могли бы встроить UUID в свое приложение и потребовать его от хранимой процедуры, прежде чем она запишет данные в базу данных.