Представления и хранимые процедуры - использование обоих для безопасности БД (Entity Framework 4) - PullRequest
2 голосов
/ 19 сентября 2010

Я немного новичок в программировании баз данных в целом и еще новее в Entity Framework 4. Я читаю книгу О'Рейли Пресс по этому вопросу, и просто хочу быть уверенным, что я понимаю, что говорит автороб использовании представлений в сочетании с хранимыми процедурами для дополнительного уровня безопасности.Она говорит:

Если вы неохотно выставляете свои таблицы базы данных для запросов, вам не нужно это делать.... Представления входят в модель как сущности, но поскольку представления доступны только для чтения, Entity Framework не может создавать команды для сохранения данных обратно в базу данных при вызове SaveChanges.... Однако эти сущности по-прежнему участвуют в отслеживании изменений, как и любые другие сущности (с оговоркой о EntityKeys, о которой я расскажу чуть позже).Затем вы можете сопоставить хранимые процедуры с этими объектами на основе вида, чтобы сохранить данные при вызове SaveChanges.Это дает вам полный обход запросов и обновлений данных без раскрытия таблиц вашей базы данных.

У меня возникли некоторые затруднения с пониманием того, как будет работать это отображение хранимых процедур, поскольку представления доступны только для чтения.Говорит ли она, что хранимые процедуры будут сопоставлены с сущностями, представленными представлением, с процедурами вставки, обновления и удаления, сопоставленными с БД, и с процедурой выбора, сопоставленной представлению?

1 Ответ

3 голосов
/ 19 сентября 2010

Это общее требование в средах размещенных баз данных.По сути, это работает так:

  • ВЫ ВЫБИРАЕТЕ свои данные из представлений
  • вы используете хранимые процедуры для операторов INSERT, UPDATE, DELETE

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

Вы бы просто "импортировали" представления в свою модель EF.Каждое представление затем создаст одну сущность (один класс) в вашей модели.Для каждой из этих сущностей вы можете затем сопоставить операции INSERT, UPDATE, DELETE с существующими хранимыми процедурами в базе данных.

См. Запретить доступ к таблице к платформе сущностей, не вызывая мятеж статья в журнале MSDN для более глубокого объяснения всех входов и выходов этого.Это объясняет все шаги в деталях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...