Ограничить манипулирование данными от пользователя только через прикладной уровень для решения с несколькими базами данных

StackOverflow https://stackoverflow.com/questions/1537765

  •  20-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Вы могли бы встроить UUID в свое приложение и потребовать его от хранимой процедуры, прежде чем она запишет данные в базу данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top