2010-04-26 2 views
1

В моей организации мы только начинаем использовать Entity Framework для некоторых приложений. В прошлом мы заставили разработчиков использовать хранимые процедуры для доступа к базе данных. Помимо помощи в SQL-инъекции, мы пытались предоставить доступ к хранимым процедурам только для обеспечения безопасности относительно жесткой.Entity Framework Security

Хотя вставка, обновление и удаление легко выполняются с помощью хранимых процедур в EF, представляется сложным использование хранимых процедур для запроса данных с помощью EF. Однако, используя LINQ или Entity SQL и позволяя EF создавать запросы, означает предоставление пользователю доступа для чтения ко всей базе данных.

Как другие справились с этой дилеммой?

+0

Очень легко запросить данные с помощью proc в EF. То, что вы не можете сделать, это составить эти запросы, потому что procs не компонуются. Это не ограничение EF; это основное ограничение procs. –

ответ

3

Какую защиту данных вы пытаетесь применить?

С EF, вы можете написать блок проверяемой слой бизнес-логики, который будет обрабатывать много сценариев более авторизации, чем вы можете сделать на уровне базы данных (хотя я могу видеть, как несколько уровней безопасности заставляет вас чувствовать себя безопаснее):

  • AD Запросы (это пользователь менеджер этого пользователя?)
  • Вызов веб-службы
  • Проверка других условий окружающей среды,

Если Circu mstances означает, что вы не готовы думать о базе данных как о хранилище данных, а не о уровне безопасности бизнес-логики &, то, возможно, EF не подходит для вашего проекта.

P.S. EF защитит вас от SQL-инъекций.

+1

Совершенно верно. Просмотрев некоторые методы безопасности, которые я использовал для чтения данных из базы данных, я решил, что они не предоставляют никаких * настоящих * безопасности. – NYSystemsAnalyst