2012-04-09 5 views
1

Какую роль сервера (ов) и/или Роль (s) База данных должна SQL-Войти должны сделать следующее:SQL Server - Какую роль следует использовать для доступа к приложениям?

  1. чтения данных (включая таблицы Temp)
  2. Запись данных (включая таблицы Temp)
  3. Выполнения любой SP в базе данных, которые они получают доступ

Мы мигрируем от SQL 2000 по 2008 году, и я собираюсь через все Логины и заметил, что они все готовы к Сисадминым & db_owner, который ISN Нехорошо. Наши приложения, которые используют эти логины, будут делать только то, что я перечислил выше, поэтому мне интересно. Я знаю, что могу установить каждый вход с ролью базы данных db_datareader & db_datawriter, но это не включает выполнение SP. У нас есть около 300 SP в 2 или наших БД и нужно пройти через каждый SP и установить права входа в расширенные свойства, которые будут слишком длинными и утомительными.

Любая помощь очень ценится!

ответ

0

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

В качестве бонуса, если ваши объекты программирования имеют своеобразное соглашение об именах префиксов, так что (например) процедуры, которые читаются из ваших таблиц информации для входа, начинаются с чего-то вроде pAccount_ или чего-то другого, тогда вы можете динамически делать GRANT s роли на основе префикса подпрограммы.

+0

Я пошел по этому маршруту, так как это дает мне большую гибкость для моей нынешней ситуации. Спасибо за информацию! – Robert

1

, чтобы пройти через каждый SP и установить права доступа для входа в Extended Properties будет слишком долго и утомительно

И все же, это также будет наиболее безопасным.

Использование встроенных ролей предоставляет слишком большую часть вашей базы данных для вашего приложения.

+0

Да, наиболее безопасно, но как вы управляете всеми своими полномочиями и разрешениями в отношении логинов? У нас нет DB Admin здесь, это только я (еще один парень, который недавно ушел) ... – Robert

1

Можете ли вы дать db_datareader и/или db_datawriter права на исполнение? Это предоставит пользователю права на выполнение любых хранимых процедур в базах данных, к которым он имеет доступ. Если у вас есть представления, вам также необходимо предоставить им права выбора.

GRANT EXECUTE TO db_datawriter 
+0

Я думаю, что «Alter» не понадобится, поскольку, как эти приложения не «изменяют» любые таблицы. ... включает в себя удаление временных таблиц? – Robert

Смежные вопросы