2013-03-21 6 views
0

У меня есть роль базы данных с именем app_user с правами выбора, обновления, вставки и удаления во всех таблицах, кроме 2. В этих двух таблицах роль app_user выбрана правильно.Обновление таблицы обновлений с использованием роли базы данных (роль сервера завершена)

Но некоторые пользователи имеют право создавать пользователей баз данных (с помощью create login, sp_adduser, sp_addrolemember). Для выполнения этих процедур у них должна быть роль сервера sysadmin. В этом случае роль sysadmin выполняется над ролью в базе данных app_user, и они могут обновлять эти 2 таблицы. В настоящее время я предоставляю им роль securityadmin, но они могут выполнять только создание логина при создании пользователей db.

Подводя итог, Я хочу защитить обновление 2 таблиц для всех пользователей, кроме моей учетной записи sysadmin, и хочу, чтобы некоторые пользователи могли создавать пользователей базы данных (мое приложение выполняет sp, которые предоставляют разрешение на db для таких пользователей) ,

ответ

0

Вы можете получить лучший ответ на сайте DBA, но похоже, что вы хотите, чтобы позволить пользователям выполнять 3 команды: CREATE LOGIN, CREATE USER и sp_addrolemember (потому что ALTER ROLE не может добавлять пользователей к роли в SQL Server 2008).

Согласно документации, минимальные разрешения, необходимые являются:

  • CREATE LOGIN - ALTER (ANY) LOGIN
  • CREATE USER - ALTER ANY USER
  • sp_addrolemember - ALTER разрешения на роли

Таким образом, они не должны» t необходимо либо sysadmin, либо db_owner, если вы предоставите им разрешения, перечисленные выше.