Внедрение безопасности в Entity Framework

#entity-framework

#entity-framework

Вопрос:

На моем клиентском сайте пользователь базы данных имеет разрешения только на выполнение хранимых процедур.

У пользователя базы данных нет разрешений на прямое выполнение запросов.

Но я использовал Entity Framework, и никакие хранимые процедуры не использовались.

Что я могу сделать?

Ответ №1:

В таком случае лучше использовать собственный SQL ADO.NET напрямую. Основная сила EF заключается в стратегиях сопоставления, запросов linq / ESQL и загрузки. Как только вы будете ограничены хранимыми процедурами, вы потеряете поддержку последних двух = никаких запросов и никаких стратегий загрузки. У вас по-прежнему будет поддержка сопоставления, но это приведет к снижению производительности и потребует строгих ограничений на ваши хранимые процедуры.

Ответ №2:

Entity Framework позволяет сопоставить каждую сущность с набором хранимых процедур, которые будут выполнять вставку, удаление и обновление.

Таким образом, пользователю не придется выполнять запросы напрямую при изменении данных в вашей базе данных.

Если у пользователя также нет разрешений на выбор, вам нужны хранимые процедуры для доступа к данным. Entity Framework может вам помочь, потому что вы можете импортировать хранимые процедуры в SSDL-часть вашего EDMX, а затем вы можете сопоставить эти хранимые процедуры с функциями в вашем ObjectContext.

Комментарии:

1. Как мы можем это сделать? какие-либо ссылки используют полные ссылки?