Принцип наименьших привилегий с Entity Framework
Я читаю о своей безопасности и у меня есть общий вопрос. В базе данных пользователям должны быть предоставлены только те атрибуты, которые им требуются: выбор, чтение, удаление и т. Д.
При использовании Entity Framework в качестве ORM, как я могу реализовать это? Сущности не имеют понятия разрешений.
Спасибо
1 ответ
Способ реализации наименьших привилегий для Entity Framework заключается в том, что вы используете имя входа базы данных для подключения к базе данных из EF (обычно это задается в строке подключения). В зависимости от того, как вы используете EF, этому входу в систему следует разрешать только определенные действия.
Очевидно, что ему потребуется CRUD-доступ к таблицам (или представлениям), если вы не используете хранимые процедуры для вставок / обновлений / удалений. Это нужно будет выполнить для любых функций или хранимых процедур, которые вы используете.
Кроме того, если вы намереваетесь использовать Code First Migrations, он должен в основном иметь право собственности, потому что он будет добавлять / удалять таблицы и столбцы.
Вот как вы реализуете наименьшие привилегии для EF, что может не соответствовать вашим ожиданиям. Если вы хотите знать, как реализовать это для своих пользователей, то это будет вопрос аутентификации и авторизации, который будет выходить за рамки базы данных и будет более проблематичным для вашего приложения. (Я полагаю, что технически вы могли бы использовать метод, при котором пользователь должен войти в систему с использованием имени входа в базу данных, который будет использоваться для настройки соединения EF с базой данных, но я думаю, что это может быть очень подвержено ошибкам, особенно если он находится в веб приложение.)
Дайте мне знать, если это помогло вам.:)