Я использую LinqToSQL и надежное соединение для обработки выбора / обновления / вставки / удаления базы данных. Раньше я всегда использовал хранимые процедуры и предоставлял разрешение на выполнение только идентификатору пула приложений для конкретного sproc в базе данных. Это мой первый проект LinqToSql (и мне очень нравится, насколько он помогает). Я бы предпочел не предоставлять dbo доступ к удостоверению пула приложений, чтобы заставить LinqToSql работать (но если это рекомендуется, я не возражаю). Какие разрешения я могу предоставить идентификатору пула приложений, чтобы LinqToSql имел минимальные разрешения? Или я должен просто пойти с разрешениями dbo и покончить с этим?
Согласно ответ Кристофера это разрешения, которые я предоставил идентификатору пула приложений в базе данных: EXEC sp_addrolemember 'db_datareader', 'app_pool_identity'
EXEC sp_addrolemember 'db_datawriter', 'app_pool_identity'
Не совсем такой же уровень безопасности, как предоставление разрешений на выполнение только для необходимых sprocs, но я очень хорошо с этим справляюсь, учитывая огромные успехи в разработке, которых я достиг только с помощью Linq2SQL. И это лучше, чем предоставлять полный доступ к dbo.