Роли уровня базы данных
Для удобства управления разрешениями в базах данных 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 не могут считывать данные из пользовательских таблиц базы данных. |
Дополнительные сведения о разрешениях предопределенных ролей уровня базы данных см. в разделе Разрешения предопределенных ролей базы данных (компонент Database Engine).
Роли базы данных msdb
База данных msdb содержит специальные роли, показанные в следующей таблице.
Имя роли базы данных msdb |
Описание |
---|---|
db_ssisadmin db_ssisoperator db_ssisltduser |
Члены этих ролей базы данных могут администрировать и использовать службы SSIS. Экземпляры SQL Server, обновленные с предыдущей версии, могут содержать более старую версию роли, имя которой присвоено с помощью служб DTS, а не служб SSIS. Дополнительные сведения см. в разделе Использование ролей служб Integration Services. |
dc_admin dc_operator dc_proxy |
Члены этих ролей базы данных могут администрировать и использовать сборщик данных. Дополнительные сведения см. в разделе Безопасность сборщика данных. |
PolicyAdministratorRole |
Члены роли базы данных db_ PolicyAdministratorRole могут выполнять все действия по настройке и обслуживанию политик и условий средства «Управление на основе политики». Дополнительные сведения см. в разделе Администрирование серверов с помощью управления на основе политик. |
ServerGroupAdministratorRole ServerGroupReaderRole |
Члены этих ролей базы данных могут администрировать и использовать зарегистрированные группы серверов. Дополнительные сведения см. в разделе Создание групп серверов. |
Важно! |
---|
Члены роли db_ssisadmin и dc_admin могут повысить права доступа до sysadmin. Повышение прав доступа возможно по той причине, что эти роли могут изменять пакеты служб Integration Services, а пакеты служб Integration Services могут быть выполнены экземпляром SQL Server в контексте безопасности sysadmin агента SQL Server. Чтобы защититься от повышения прав доступа во время запуска планов обслуживания, наборов сбора данных и других пакетов служб Integration Services, настройте задания агента SQL Server, запускающего пакеты, на использование учетной записи-посредника с ограниченными разрешениями либо добавляйте в роли db_ssisadmin и dc_admin только членов роли sysadmin. |
Работа с ролями уровня базы данных
В следующей таблице описаны команды, представления и функции, предназначенные для работы с ролями уровня базы данных.
Функция |
Тип данных |
Описание |
---|---|---|
Метаданные |
Возвращает список всех предопределенных ролей базы данных. |
|
Метаданные |
Отображает разрешения предопределенной роли базы данных. |
|
Метаданные |
Возвращает информацию о ролях, относящихся к текущей базе данных. |
|
Метаданные |
Возвращает сведения о членах роли в текущей базе данных. |
|
Метаданные |
Возвращает одну строку для каждого члена каждой роли базы данных. |
|
Метаданные |
Указывает, является ли текущий пользователь членом указанной группы Microsoft Windows или роли базы данных Microsoft SQL Server. |
|
Команда |
Создает новую роль базы данных в текущей базе данных. |
|
Команда |
Изменяет имя роли базы данных. |
|
Команда |
Удаляет роль из базы данных. |
|
Команда |
Создает новую роль базы данных в текущей базе данных. |
|
Команда |
Удаляет роль базы данных из текущей базы данных. |
|
Команда |
Добавляет пользователя базы данных, роль базы данных, имя входа Windows или группу Windows к роли текущей базы данных. |
|
Команда |
Удаляет учетную запись безопасности из роли SQL Server в текущей базе данных. |
Роль базы данных public
Каждый пользователь базы данных принадлежит к роли базы данных public. Если для пользователя не были предоставлены или запрещены конкретные разрешения на защищаемый объект, он наследует разрешения роли public на этот объект.