Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы легко управлять разрешениями в базах данных, SQL Server предоставляет несколько ролей, которые являются объектами безопасности, объединяющими других объектов. Они похожи на группы в операционной системе Microsoft Windows. Роли уровня базы данных имеют полномочия, охватывающие всю базу данных.
В SQL Server существует два типа ролей уровня базы данных: предопределенные роли базы данных , которые предопределяются в базе данных и гибких ролях базы данных , которые можно создать.
Фиксированные роли базы данных определяются на уровне базы данных и существуют в каждой базе данных. Члены роли базы данных db_owner могут управлять членством в предопределенных роях базы данных. В базе данных msdb также существуют некоторые предопределенные роли базы данных специального назначения.
Вы можете добавить любую учетную запись базы данных и другие роли SQL Server в роль уровня базы данных. Каждый член фиксированных ролей базы данных может добавлять другие логины в ту же роль.
Это важно
Не добавляйте гибкие роли базы данных в качестве членов фиксированных ролей. Это может позволить непреднамеренную эскалацию привилегий.
В следующей таблице показаны фиксированные роли уровня базы данных и их возможности. Эти роли существуют во всех базах данных.
Имя роли уровня базы данных | Описание |
---|---|
db_owner | Члены предопределенных ролей базы данных db_owner могут выполнять все действия по настройке и обслуживанию базы данных, а также удалять базу данных. |
db_securityadmin | Члены предопределенных ролей базы данных db_securityadmin могут изменять членство в роли и управлять разрешениями. Добавление субъектов в эту роль может включить непреднамеренное повышение привилегий. |
db_accessadmin | Члены предопределенных ролей базы данных db_accessadmin могут добавлять или удалять доступ к базе данных для имен входа Windows, групп 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, которые запускают пакеты, так, чтобы использовать учетную запись прокси с ограниченными привилегиями или добавлять в роли db_ssisadmin и dc_admin исключительно членов sysadmin.
Работа с ролями Database-Level
В следующей таблице описываются команды, представления и функции для работы с ролями уровня базы данных.
Функция | Тип | Описание |
---|---|---|
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. |
СОЗДАТЬ РОЛЬ (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 базы данных. Если пользователь не был предоставлен или запрещен в определенных разрешениях для защищаемого объекта, пользователь наследует разрешения, предоставленные общедоступному объекту.
Связанные материалы
Представления каталога безопасности (Transact-SQL)
Хранимые процедуры для обеспечения безопасности (Transact-SQL)
Функция безопасности (Transact-SQL)