Роли уровня сервера

Применимо к: даSQL Server (все поддерживаемые версии) ДаУправляемый экземпляр SQL Azure даПараллельное хранилище данных

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

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

SQL Server предоставляет девять предопределенных ролей сервера. Разрешения, назначенные предопределенным ролям сервера (кроме роли public), не могут быть изменены. Начиная с SQL Server 2012 (11.x), можно создавать пользовательские роли сервера и добавлять разрешения на уровне сервера таким пользовательским ролям.

В роли уровня сервера можно добавлять субъекты уровня сервера (имена входа, учетные записи Windows и группы WindowsSQL Server ). Каждый член предопределенной роли сервера может добавлять другие имена входа к той же роли. Члены пользовательских ролей сервера не могут добавлять других участников на уровне сервера в роль.

Примечание

Разрешения уровня сервера недоступны в Базе данных SQL или Azure Synapse Analytics. Дополнительные сведения о базе данных SQL см. в статье Предоставление доступа к базе данных и управление им.

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

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

Предопределенная роль уровня сервера Описание
sysadmin Члены предопределенной роли сервера sysadmin могут выполнять любые действия на сервере.
serveradmin Элементы предопределенной роли сервера serveradmin могут изменять параметры конфигурации на уровне сервера, а также выключать сервер.
securityadmin Элементы предопределенной роли сервера securityadmin управляют именами входа и их свойствами. Это могут быть разрешения на уровне сервера GRANT, DENY и REVOKE. Они также могут предоставлять, запрещать и отменять разрешения на уровне базы данных (инструкции GRANT, DENY и REVOKE) при наличии доступа к базе данных. Кроме того, они могут сбрасывать пароли для имен входа SQL Server .

Важно! Возможность предоставления доступа к компоненту Компонент Database Engine и настройки разрешений пользователей позволяет администратору безопасности назначать большинство разрешений сервера. Роль securityadmin должна считаться эквивалентной роли sysadmin .
processadmin Члены предопределенной роли сервера processadmin могут завершать процессы, работающие на экземпляре SQL Server.
setupadmin Члены предопределенной роли сервера setupadmin могут добавлять или удалять связанные серверы с помощью инструкций Transact-SQL. (Членство в роли sysadmin необходимо при использовании службы Среда Management Studio.)
bulkadmin Элементы предопределенной роли сервера bulkadmin могут выполнять инструкцию BULK INSERT.

Роль bulkadmin или разрешения ADMINISTER BULK OPERATIONS не поддерживаются для SQL Server в Linux. Операции массовой вставки для SQL Server на Linux может выполнять только sysadmin.
diskadmin Предопределенная роль сервера diskadmin используется для управления файлами на диске.
dbcreator Члены предопределенной роли сервера dbcreator могут создавать, изменять, удалять и восстанавливать любые базы данных.
public Каждое имя для входа SQL Server принадлежит к роли сервера public. Если для участника на уровне сервера не были предоставлены или запрещены конкретные разрешения на защищаемый объект, он наследует разрешения роли public на этот объект. Разрешения роли public следует назначать только тому объекту, который будет доступен всем пользователям. Нельзя изменить членство в роли public.

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

Важно!

Большинство разрешений, предоставляемых следующими ролями сервера, не применимы к Synapse SQL — processadmin, serveradmin, setupadmin и diskadmin.

Разрешения Предопределенных Ролей Сервера

Каждая предопределенная роль сервера обладает определенными разрешениями, назначенными ей. На следующем рисунке показаны разрешения, назначенные ролям сервера.
fixed_server_role_permissions

Важно!

Разрешение CONTROL SERVER похоже на, но не идентично sysadmin предопределенной роли сервера. Разрешения не влекут за собой членства роли, а членства роли не предоставляют разрешений. (В частности, CONTROL SERVER не подразумевает членство в предопределенной роли сервера sysadmin.) Однако иногда возможно олицетворять между ролями и эквивалентными разрешениями. Большинство команд DBCC и многие системные процедуры требуют членство в sysadmin предопределенной роли сервера. Список из 171 системной хранимой процедуры, которым требуется членство в роли sysadmin , содержится в следующей записи блога Андреаса Волтера (Andreas Wolter) Сравнение CONTROL SERVER и sysadmin/sa: разрешения, системные процедуры, DBCC, автоматическое создание схем и расширение привилегий — разъяснения.

Разрешение на уровне сервера

В пользовательские роли сервера можно добавить только разрешения уровня сервера. Для составления списка разрешений уровня сервера, выполните следующее выражение. Разрешениями уровня сервера являются:

SELECT * FROM sys.fn_builtin_permissions('SERVER') ORDER BY permission_name;  

Дополнительные сведения о разрешениях см. в разделах Разрешения (ядро СУБД) и sys.fn_builtin_permissions (Transact-SQL).

Работа с ролями уровня сервера

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

Компонент Тип Описание
sp_helpsrvrole (Transact-SQL) Метаданные Возвращает список ролей уровня сервера.
sp_helpsrvrolemember (Transact-SQL) Метаданные Возвращает сведения о членах роли уровня сервера.
sp_srvrolepermission (Transact-SQL) Метаданные Отображает разрешения роли уровня сервера.
Функция IS_SRVROLEMEMBER (Transact-SQL) Метаданные Указывает, является ли имя входа SQL Server членом указанной роли уровня сервера.
sys.server_role_members (Transact-SQL) Метаданные Возвращает одну строку для каждого члена каждой роли уровня сервера.
CREATE SERVER ROLE (Transact-SQL) Get-Help Создает определяемую пользователем роль сервера.
ALTER SERVER ROLE (Transact-SQL) Get-Help Изменяет членство в роли сервера или изменяет имя определяемой пользователем роли сервера.
DROP SERVER ROLE (Transact-SQL) Get-Help Удаляет определяемую пользователем роль сервера.
sp_addsrvrolemember (Transact-SQL) Get-Help Добавляет имя входа в качестве члена роли уровня сервера. Не рекомендуется. Используйте вместо этого ALTER SERVER ROLE .
sp_dropsrvrolemember (Transact-SQL) Get-Help Удаляет из роли уровня сервера имя входа SQL Server либо пользователя или группу Windows. Не рекомендуется. Используйте вместо этого ALTER SERVER ROLE .

См. также:

Роли уровня базы данных
Представления каталога безопасности (Transact-SQL)
Функции безопасности (Transact-SQL)
Обеспечение безопасности SQL Server
GRANT, предоставление разрешений участникам на уровне сервера (Transact-SQL)
REVOKE, отмена разрешений участника на уровне сервера (Transact-SQL)
DENY, запрет разрешения участника на уровне сервера (Transact-SQL)
Создание роли сервера