Мы создаем новую структуру и способ ведения бизнеса для наших новых внутренних приложений. Наш текущий дизайн диктует, что вся логика безопасности должна обрабатываться нашей базой данных, и вся информация (и я имею в виду все) будет поступать в базу данных и выходить из нее через хранимые процедуры.Должна ли защита данных выполняться на стороне базы данных?
Теория состоит в том, что уровень доступа к данным запрашивает информацию из хранимой процедуры и передает аутентификацию в базу данных. База данных определяет роль/разрешения пользователей и решает, выполнять ли эту задачу (получать ли данные или производить обновление).
Я думаю, это означает, что транзакции с базой данных не будут. Один звонок в базу данных. Если безопасность была на нашем уровне доступа к данным, для этого потребуется 1 вызов базы данных, чтобы определить, были ли у пользователя правильные разрешения, а затем один отдельный вызов базы данных для выполнения действия.
Я, например, считаю, что студия управления Sql полностью отсутствует как среда IDE. Моя главная забота заключается в том, что мы в конечном итоге должны будем поддерживать некоторые неприятные объемы бизнес-логики в наших хранимых процедурах для получения очень минимальной прибыли.
Прямо сейчас мы используем LINQ для нашей ORM. Это кажется легким и быстрым, но лучше всего, его очень легко быстро развиваться.
Является ли стоимость обслуживания стоимостью прироста производительности? Разве мы обманываем себя, думая, что даже будет заметный прирост производительности? Или мы просто делаем для нас кошмар?
Наша окружающая среда:
- Внутренние, без критически важных бизнес-приложений
- C#/ASP.NET 3.5
- Windows 2003
- MS SQL Server 2005
- 35 средних размеров веб-приложений с приблизительно 500 пользователями
Использование жирного шрифта здесь очень уместно. – 2008-09-11 07:42:49