Я рассматриваю возможность преобразования моего проекта с использованием Sprox в linq (EF6), однако меня немного беспокоит разрешение БД. В настоящее время я назначаю явные права на каждую процедуру и ничего кроме этого. Как я могу иметь аналогичный уровень безопасности с использованием динамически создаваемых запросов в EntityFramework?Безопасность: преобразование хранимой процедуры в EF6
0
A
ответ
0
Вы можете установить индивидуальные разрешения с помощью GRANT
command в SQL.
например.
Следующий пример предоставляет ВЫБРАТЬ разрешение пользователя RosaQdM на столе Person.Address
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
EF должны уважать права, предоставленные, так в зависимости от того пользователя, который вы используете в строке подключения вашего приложения это тот, который вам нужно назначить соответствующим разрешениям.
Почему вы хотите переместить свой sql из SP? EF может использовать SP, а также имеет динамический sql. – juharr
Я хочу увеличить скорость разработки и отказаться от написания модульных тестов в TSQL, но остаюсь с C#. Для более требовательных операций SQL я бы сохранил хранимые процедуры и выполнил их либо с помощью EF, либо с помощью чистого ADO – Dave
@Dave вы в порядке с выполнением безопасности на уровне репозитория/службы вашего приложения, а не с помощью базы данных? Я не думаю, что вы можете сделать это в базе данных с инфраструктурой Entity, не заставляя ее вызывать хранимые procs или иначе иметь «статические» запросы. Являются ли разрешения конкретными пользователями или похожими на них, вы можете прочитать это, но не писать на него? – John