Какие разрешения должны быть предоставлены пользователю SQL Server для LinqToSql? - PullRequest
4 голосов
/ 21 сентября 2009

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

Ответы [ 2 ]

1 голос
/ 21 сентября 2009

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

0 голосов
/ 21 сентября 2009

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

...