Какие разрешения должны быть предоставлены пользователю SQL Server для LinqToSql?

Я использую 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.


person Jeff Widmer    schedule 21.09.2009    source источник


Ответы (2)


db_datareader и db_datawriter достаточно, если вы просто хотите читать и записывать данные, не возясь с изменениями схемы и прочим ...

person KristoferA    schedule 21.09.2009

LinqToSQL создает динамически генерируемый SQL. Таким образом, ему необходим полный доступ к командам языка манипулирования данными (вставка, обновление, удаление). Для вашей учетной записи приложения не должен требоваться доступ к командам языка определения данных (создать, удалить, изменить и т. Д.).

person Ryan Michela    schedule 21.09.2009