Подтвердить что ты не робот

Роли, схемы, пользователи SQL Server

Я пытался выяснить, почему SQL Server имеет db_owner схему и db_owner роль? Это очень запутанно. Я искал ответы, и до сих пор я так понимаю:

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

Если это неверно, сообщите мне. Но я думаю, что пока все хорошо. Теперь мои вопросы:

  • Что такое схема db_owner, как показано в диалоговом окне "Пользователь базы данных" в SQL Server Management Studio? И в том же диалоговом окне вы определяете "Схема по умолчанию" как DBO. Почему не два одинаковые? Если по умолчанию SQL Server использует DBO для создания всех объектов, для которых используется db_owner?
  • Почему пользователь хочет иметь схему? Вы назначаете разрешения/роли уже. Что дает вам db_accessadmin?
  • Можете ли вы привести пример создания объектов в схеме db_owner и db_accessadmin? Другими словами, кто-то законно использует эти схемы?
4b9b3361

Ответ 1

Схема SQL Server - это просто контейнер объектов, таких как таблицы, хранимые процедуры и т.д. Роль базы данных - это группа участников, таких как логины Windows, пользователи sql-сервера и т.д.

Идея заключается в том, что вы можете играть роль "ИТ" и иметь всех ИТ-пользователей под эту роль. Тогда у вас есть схема под названием "ИТ", и при этом есть все таблицы, относящиеся к ИТ. Вне коробки SQL Server создает соответствующие схемы для каждого пользователя и роли по умолчанию в базе данных, но я думаю, что вы настроите это так, чтобы оно соответствовало потребностям вашей организации.

В этой статье содержится дополнительная информация о различиях между владельцами и схемами. Этот вопрос о переполнении стека также может быть полезен.

Ответ 2

Я цитирую нижеследующее из следующей ссылки.

https://msdn.microsoft.com/en-us/library/bb669061(v=vs.110).aspx

SQL Server поставляется с десятью заранее определенными схемами, которые имеют те же имена, что и встроенные пользователи и роли базы данных. Они существуют в основном для обратной совместимости. Вы можете отказаться от схем, которые имеют те же имена, что и фиксированные роли базы данных, если они вам не нужны. Вы не можете отказаться от следующих схем:

  • dbo
  • guest
  • sys
  • INFORMATION_SCHEMA