Роли, схемы, пользователи SQL Server - PullRequest
38 голосов
/ 20 июля 2009

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

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

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

  1. Что такое схема db_owner, отображаемая в диалоговом окне «Пользователь базы данных» в SQL Server Management Studio? И в этом же диалоге вы определяете «Схему по умолчанию» как dbo. Почему они не одинаковы? Если по умолчанию SQL Server использует dbo для создания всех объектов, для чего используется db_owner?
  2. Зачем пользователю хотеть иметь схему? Вы уже назначаете разрешения / роли. Что дает владение db_accessadmin?
  3. Можете ли вы привести пример создания объектов в схемах db_owner и db_accessadmin? Другими словами, кто-нибудь законно использует эти схемы?

Ответы [ 2 ]

24 голосов
/ 20 июля 2009

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

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

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

1 голос
/ 27 декабря 2015

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

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

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

  • dbo
  • guest
  • sys
  • INFORMATION_SCHEMA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...