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


Database-Level роли

Чтобы легко управлять разрешениями в базах данных, 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)

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

sp_helprotect (Transact-SQL)