Серверные роли и роли базы данных в SQL Server (ADO.NET)

Во всех версиях SQL Server используется безопасность на основе ролей, что позволяет назначать разрешения роли или группе пользователей, а не отдельным пользователям. Предопределенные роли сервера и предопределенные роли базы данных имеют предопределенный набор разрешений, назначенных для них.

Предопределенные роли сервера

Предопределенные роли сервера имеют предопределенный набор разрешений на уровне сервера. Они предназначены для использования в администрировании SQL Server, и разрешения, назначенные им, не могут быть изменены. Предопределенным ролям сервера могут назначаться имена входа без наличия учетной записи пользователя в базе данных.

Примечание о безопасностиПримечание по безопасности

Предопределенная роль сервера sysadmin включает в себя все остальные роли и имеет неограниченную область действия.В эту роль следует включать только доверенных участников.Члены роли sysadmin обладают безотзывными правами администратора применительно ко всем базам данных и ресурсам сервера.

Тщательно обосновывайте решение по добавлению пользователей к предопределенным ролям сервера. Например, роль bulkadmin позволяет пользователям вставлять содержимое любого локального файла в таблицу, что может подвергнуть риску целостность данных. Полный список предопределенных ролей и разрешений сервера см. в электронной документации по SQL Server 2005. Предопределенные роли сервера для SQL Server 2000 имеют аналогичные имена и наборы разрешений, соответствующие SQL Server 2000.

Предопределенные роли базы данных

Предопределенные роли базы данных имеют предопределенный набор разрешений, разработанных для упрощения управления группами разрешений. Члены роли db_owner могут выполнять все действия по настройке конфигурации и обслуживанию базы данных.

Дополнительные сведения о предопределенных ролях SQL Server см. в следующих ресурсах.

Ресурс

Описание

Роли уровня сервера и Разрешения для предопределенных ролей сервера в электронной документации по SQL Server 2005.

Описывает предопределенные роли сервера и связанные с ними разрешения в SQL Server 2005.

Роли уровня базы данных и Разрешения для предопределенных ролей базы данных в электронной документации по SQL Server 2005.

Описывает предопределенные роли базы данных и связанные с ними разрешения

Добавление члена к предопределенной роли в электронной документации по SQL Server 2000

Описывает разрешения, связанные с предопределенными ролями сервера и базы данных, и демонстрирует способ добавления членов к ролям.

Роли и пользователи базы данных

Чтобы можно было работать с объектами базы данных, имена входа должны быть сопоставлены с учетными записями пользователей базы данных. После этого пользователи базы данных могут быть добавлены к ролям базы данных, наследуя все наборы разрешений, связанные с этими ролями. После выхода версии SQL Server 2005 появилась возможность предоставления всех разрешений.

При разработке средств безопасности приложения также необходимо рассмотреть роль public, учетную запись пользователя dbo и учетную запись guest.

Роль public

Роль public содержится в каждой базе данных, включая системные базы данных. Ее нельзя удалить, а также нельзя добавлять и удалять пользователей из нее. Разрешения, предоставленные роли public, наследуются всеми остальными пользователями и ролями, поскольку они принадлежат к роли public по умолчанию. Следует предоставлять роли public только разрешения, необходимые для всех пользователей.

Учетная запись пользователя dbo

dbo, или владелец базы данных, представляет собой учетную запись пользователя, которая имеет неявно заданные разрешения на выполнение любых действий с базой данных. Члены предопределенной роли сервера sysadmin автоматически сопоставляются с dbo.

ПримечаниеПримечание

Начиная с версии SQL Server 2005, dbo также является именем схемы, как описано в разделе Владение и отделение пользователей от схем в SQL Server (ADO.NET).

Учетную запись пользователя dbo часто путают с предопределенной ролью базы данных db_owner. Но областью действия db_owner является база данных, а областью действия sysadmin является весь сервер. Членство в роли db_owner не дает доступа к пользовательским привилегиям роли dbo.

Учетная запись пользователя guest

После прохождения пользователем проверки подлинности и получения разрешения на вход в экземпляр SQL Server в каждой базе данных должна существовать отдельная учетная запись пользователя, к которой пользователь должен получить доступ. В связи с требованием о существовании учетной записи пользователя в каждой базе данных предотвращается соединения пользователей с экземпляром SQL Server и получение доступа ко всем базам данных сервера. Существование учетной записи пользователя guest в базе данных дает возможность обойти данное требование, позволяя имени входа без учетной записи базы данных получить доступ к базе данных.

Учетная запись guest является встроенной учетной записью во всех версиях SQL Server. По умолчанию учетная запись guest в новых базах данных отключена. Если она включена, ее можно отключить путем отмены разрешения CONNECT, выполнив инструкцию REVOKE CONNECT FROM GUEST языка Transact-SQL. В SQL Server 2000 можно ее отключить, выполнив системные хранимые процедуры sp_dropuser или sp_revokedbaccess языка Transact-SQL.

Примечание о безопасностиПримечание по безопасности

Следует избегать использования учетной записи guest. Все имена входа без собственных разрешений базы данных получают разрешения, предоставленные данной учетной записи.При необходимости использования учетной записи guest следует предоставить ей минимальные разрешения.

Дополнительные сведения об именах входа, пользователях и ролях SQL Server см. в следующих ресурсах.

Ресурс

Описание

Идентификатор и управление доступом в электронной документации по SQL Server 2008

Содержит ссылки на разделы, описывающие участников, роли, учетные данные, защищаемые объекты и разрешения.

Участники в электронной документации по SQL Server 2005

Описывает участников и содержит ссылки на разделы, описывающие роли сервера и базы данных.

Создание учетных записей безопасности и Управление учетными записями безопасности в электронной документации по SQL Server 2000.

Описывает способ создания и управления именами входа, пользователями и ролями.

См. также

Основные понятия

Сценарии защиты приложений в SQL Server (ADO.NET)

Проверка подлинности в SQL Server (ADO.NET)

Владение и отделение пользователей от схем в SQL Server (ADO.NET)

Авторизация и разрешения в SQL Server (ADO.NET)

Другие ресурсы

Защита приложений ADO.NET