Принцип наименьших привилегий с Entity Framework

Я читаю о своей безопасности и у меня есть общий вопрос. В базе данных пользователям должны быть предоставлены только те атрибуты, которые им требуются: выбор, чтение, удаление и т. Д.

При использовании Entity Framework в качестве ORM, как я могу реализовать это? Сущности не имеют понятия разрешений.

Спасибо

1 ответ

Решение

Способ реализации наименьших привилегий для Entity Framework заключается в том, что вы используете имя входа базы данных для подключения к базе данных из EF (обычно это задается в строке подключения). В зависимости от того, как вы используете EF, этому входу в систему следует разрешать только определенные действия.

Очевидно, что ему потребуется CRUD-доступ к таблицам (или представлениям), если вы не используете хранимые процедуры для вставок / обновлений / удалений. Это нужно будет выполнить для любых функций или хранимых процедур, которые вы используете.

Кроме того, если вы намереваетесь использовать Code First Migrations, он должен в основном иметь право собственности, потому что он будет добавлять / удалять таблицы и столбцы.

Вот как вы реализуете наименьшие привилегии для EF, что может не соответствовать вашим ожиданиям. Если вы хотите знать, как реализовать это для своих пользователей, то это будет вопрос аутентификации и авторизации, который будет выходить за рамки базы данных и будет более проблематичным для вашего приложения. (Я полагаю, что технически вы могли бы использовать метод, при котором пользователь должен войти в систему с использованием имени входа в базу данных, который будет использоваться для настройки соединения EF с базой данных, но я думаю, что это может быть очень подвержено ошибкам, особенно если он находится в веб приложение.)

Дайте мне знать, если это помогло вам.:)

Другие вопросы по тегам