Поделиться через


Роли уровня базы данных

Для удобства управления разрешениями в базах данных SQL Server предоставляет несколько ролей, которые являются субъектами безопасности, группирующими других участников. Они подобны группам в операционной системе Microsoft Windows. Разрешения ролей уровня базы данных распространяются на всю базу данных.

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

Предопределенные роли базы данных задаются на уровне базы данных и предусмотрены в каждой базе данных. Члены ролей базы данных db_owner и db_securityadmin могут управлять членством в предопределенных ролях базы данных. Но только члены роли базы данных db_owner могут добавлять членов в предопределенную роль базы данных db_owner. Кроме того, в базе данных msdb имеются специальные предопределенные роли базы данных.

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

Важное примечаниеВажно!

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

В следующей таблице представлены предопределенные роли уровня базы данных и их возможности. Эти роли существуют во всех базах данных.

Имя роли уровня базы данных

Описание

db_owner

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

db_securityadmin

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

db_accessadmin

Члены предопределенной роли базы данных db_accessadmin могут добавлять или удалять права удаленного доступа к базе данных для имен входа и групп Windows, а также имен входа SQL Server.

db_backupoperator

Члены предопределенной роли базы данных db_backupoperator могут создавать резервные копии базы данных.

db_ddladmin

Члены предопределенной роли базы данных db_ddladmin могут выполнять любые команды языка определения данных (DDL) в базе данных.

db_datawriter

Члены предопределенной роли базы данных db_datawriter могут добавлять, удалять или изменять данные во всех пользовательских таблицах.

db_datareader

Элементы предопределенной роли базы данных db_datareader могут считывать все данные из всех пользовательских таблиц.

db_denydatawriter

Члены предопределенной роли базы данных db_denydatawriter не могут добавлять, изменять или удалять данные в пользовательских таблицах базы данных.

db_denydatareader

Члены предопределенной роли базы данных db_denydatareader не могут считывать данные из пользовательских таблиц базы данных.

Роли базы данных msdb

База данных msdb содержит специальные роли, показанные в следующей таблице.

Имя роли базы данных msdb

Описание

db_ssisadmin

db_ssisoperator

db_ssisltduser

Члены этих ролей базы данных могут администрировать и использовать службы Службы SSIS. Экземпляры SQL Server, обновленные с предыдущей версии, могут содержать более старую версию роли, имя которой присвоено с помощью служб DTS, а не служб Службы SSIS. Дополнительные сведения см. в разделе Роли служб Integration Services (службы SSIS).

dc_admin

dc_operator

dc_proxy

Члены этих ролей базы данных могут администрировать и использовать сборщик данных. Дополнительные сведения см. в разделе Сбор данных.

PolicyAdministratorRole

Члены роли базы данных db_ PolicyAdministratorRole могут выполнять все действия по настройке и обслуживанию политик и условий средства «Управление на основе политики». Дополнительные сведения см. в разделе Администрирование серверов с помощью управления на основе политик.

ServerGroupAdministratorRole

ServerGroupReaderRole

Члены этих ролей базы данных могут администрировать и использовать зарегистрированные группы серверов.

dbm_monitor

Создается в базе данных msdb при регистрации в мониторе зеркального отображения базы данных первой базы данных. Роль dbm_monitor не имеет членов до тех пор, пока системный администратор не назначит ее пользователям.

Важное примечаниеВажно!

Члены роли db_ssisadmin и роли dc_admin могут повышать свои права доступа до sysadmin. Такое повышение прав доступа может произойти, так как эти роли могут изменять пакеты служб Службы Integration Services, а пакеты служб Службы Integration Services могут выполняться SQL Server с контекстом безопасности sysadmin агента SQL Server. Чтобы предотвратить такое повышение прав при выполнении планов обслуживания, наборов элементов сбора данных и других пакетов служб Службы Integration Services, настройте задания агента SQL Server (запускающие пакеты) на использование учетной записи-посредника с ограниченными правами или добавьте членов роли sysadmin в роли db_ssisadmin и dc_admin.

Работа с ролями уровня базы данных

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

Компонент

Тип

Описание

sp_helpdbfixedrole (Transact-SQL)

Метаданные

Возвращает список всех предопределенных ролей базы данных.

sp_dbfixedrolepermission (Transact-SQL)

Метаданные

Отображает разрешения предопределенной роли базы данных.

sp_helprole (Transact-SQL)

Метаданные

Возвращает информацию о ролях, относящихся к текущей базе данных.

sp_helprolemember (Transact-SQL)

Метаданные

Возвращает сведения о членах роли в текущей базе данных.

sys.database_role_members (Transact-SQL)

Метаданные

Возвращает одну строку для каждого члена каждой роли базы данных.

IS_MEMBER (Transact-SQL)

Метаданные

Указывает, является ли текущий пользователь членом указанной группы Microsoft Windows или роли базы данных Microsoft SQL Server.

CREATE ROLE (Transact-SQL)

Команда

Создает новую роль базы данных в текущей базе данных.

ALTER ROLE (Transact-SQL)

Команда

Изменяет имя роли базы данных.

DROP ROLE (Transact-SQL)

Команда

Удаляет роль из базы данных.

sp_addrole (Transact-SQL)

Команда

Создает новую роль базы данных в текущей базе данных.

sp_droprole (Transact-SQL)

Команда

Удаляет роль базы данных из текущей базы данных.

Хранимая процедура sp_addrolemember (Transact-SQL)

Команда

Добавляет пользователя базы данных, роль базы данных, имя входа Windows или группу Windows к роли текущей базы данных.

sp_droprolemember (Transact-SQL)

Команда

Удаляет учетную запись безопасности из роли SQL Server в текущей базе данных.

Роль базы данных public

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

См. также

Представления каталога безопасности (Transact-SQL)

Хранимые процедуры безопасности (Transact-SQL)

Функции безопасности (Transact-SQL)

Обеспечение безопасности SQL Server

sp_helprotect (Transact-SQL)