Выбор места принудительного применения безопасности
Компромиссы присущи принудительному обеспечению безопасности. База данных может быть естественным местом для размещения логики безопасности, учитывая, что в конечном счете данные являются наиболее важными для защиты. Однако это имеет значительные последствия для производительности. Обеспечение безопасности в базе данных может быть очень дорогим, масштабируется плохо и является негибким.
Обеспечение безопасности на среднем уровне
Общее правило для выполнения масштабируемых многоуровневых приложений с помощью COM+ заключается в том, что, когда это возможно, необходимо обеспечить подробную безопасность в приложении COM+ на среднем уровне. Это позволяет полностью использовать масштабируемые службы, предоставляемые COM+. Принудительное применение проверки подлинности в базе данных только в том случае, если это необходимо, и полностью взвесить последствия для производительности.
Оптимальная ситуация заключается в том, чтобы обеспечить безопасность таблиц базы данных, чтобы приложение COM+ могло получить доступ к ним под собственным удостоверением. База данных должна просто пройти проверку подлинности приложения COM+ и доверять ей для правильной проверки подлинности и авторизации клиентов, которые будут получать доступ к данным. Ниже приведены преимущества этого подхода.
- Он обеспечивает пул подключений среди всех клиентов, так как подключения являются полностью универсальными.
- Обычно она оптимизирует доступ к данным, часто проблематичную точку чоха при масштабировании приложений.
- Это может свести к минимуму затраты логики для обеспечения безопасности, особенно если можно использовать декларативную безопасность на основе ролей.
- Она может обеспечить большую гибкость в политике безопасности. Вы можете легко настроить и перенастроить его, как описано в разделе "Безопасность на основе ролей" Администратор istration.
Но, как описано в статье "Проектирование ролей эффективно", в то время как роли могут быть легко и эффективно применены к некоторым связям с данными пользователей, они не являются универсальным решением для решений по доступу к безопасности.
Обеспечение безопасности в базе данных
Несмотря на предпочтительность обеспечения безопасности на среднем уровне, существует ряд причин для обеспечения безопасности в базе данных, таких как:
- У вас нет выбора, возможно, по устаревшим причинам или, возможно, потому что решение просто не в ваших руках.
- Доступ к базе данных осуществляется различными приложениями, и ее безопасность не может быть настроена на основе одного приложения.
- Базу данных можно сделать предсказуемо защищенной. Если вы храните критически важные данные предприятия в базе данных, вы можете нарисовать узкий вагон вокруг него и помочь контролировать, кто получает, чтобы увидеть его.
- Проверка подлинности исходных клиентов в базе данных позволяет подробно ведения журнала, который сделал то, что в базе данных.
- Некоторые данные изначально привязаны к конкретным пользователям, и логика принятия решений об очень точном доступе может быть наиболее эффективно проведена в самой базе данных рядом с данными.
Когда у вас есть роскошь проектирования безопасности базы данных и приложения COM+ в тандеме, большинство этих проблем относятся к характеристикам самих данных и его отношениям с пользователями, к которым он обращается. С помощью данных, к которым можно получить доступ с помощью прогнозируемых категорий пользователей, эффективно управлять доступом на среднем уровне с помощью ролей. С данными, которые сложно привязаны к очень небольшим классам пользователей, эти отношения часто должны быть выражены с самими данными, и поэтому необходимо обеспечить некоторую безопасность в базе данных.
Последствия обеспечения безопасности в базе данных
Если вы выполняете проверку подлинности или авторизуете пользователей в базе данных, удостоверение пользователя должно распространяться в базу данных для поддержки этого. Если база данных доверяет приложению среднего уровня для этого, можно передать сведения о безопасности пользователей в параметрах. В противном случае вызов к базе данных должен выполняться под удостоверением пользователя, что означает, что серверное приложение должно олицетворить клиента. Это может повлиять на производительность, например следующее:
- Олицетворение клиента может быть гораздо медленнее, чем вызов непосредственно под удостоверением приложения. Дополнительные сведения см. в разделе олицетворение клиента и делегирование.
- Подключение к базе данных, сделанное под определенным удостоверением пользователя, невозможно объединить в пул.
- При добавлении логики в саму базу данных возникает риск создания узкого места масштабирования.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по