sys.server_permissions (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL AzureПлатформенная система аналитики (PDW)

Возвращает по одной строке на каждое разрешение на уровне сервера.

Имя столбца Тип данных Description
class tinyint Определяет класс субъекта, в котором существует разрешение.

100 = Сервер

101 = Сервер-участник

105 = Конечная точка

108 = группа доступности
class_desc nvarchar(60) Описание класса, на который существует разрешение. Одно из следующих значений:

СЕРВЕР

SERVER_PRINCIPAL

ENDPOINT

AVAILABILITY GROUP
major_id int Идентификатор защищаемого объекта, на который существует разрешение, интерпретируемое согласно классу объекта. Как правило, это просто идентификатор, который применяется к тому, что представляет собой этот класс. Интерпретация нестандартных значений следующая:

100 = Всегда 0
minor_id int Вторичный идентификатор субъекта, в котором существует разрешение, интерпретируемое согласно классу объекта.
grantee_principal_id int Идентификатор сервера-участника, на который предоставляются разрешения.
grantor_principal_id int Идентификатор сервера-участника, который предоставляет эти разрешения.
type char(4) Тип разрешения сервера. Список типов разрешений см. в следующей таблице.
permission_name nvarchar(128) Имя разрешения.
state char(1) Состояние разрешения:

D = запретить

R = отменить

G = предоставить

W = Разрешить с аргументом Grant
state_desc nvarchar(60) Описание состояния разрешения:

DENY

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION
Тип разрешения Имя разрешения Применяется к защищаемому объекту
AAES ИЗМЕНЕНИЕ ЛЮБОГО EVENT SESSION SERVER
ADBO АДМИНИСТРИРОВАНИЕ МАССОВЫХ ОПЕРАЦИЙ SERVER
AL ИЗМЕНИТЬ ENDPOINT, LOGIN
ALAA ИЗМЕНЕНИЕ ЛЮБОГО SERVER AUDIT SERVER
ALAG ИЗМЕНЕНИЕ ЛЮБОГО AVAILABILITY GROUP SERVER
ALCD ИЗМЕНЕНИЕ ЛЮБОГО CREDENTIAL SERVER
ALCO ИЗМЕНЕНИЕ ЛЮБОГО СОЕДИНЕНИЯ SERVER
ALDB ИЗМЕНЕНИЕ ЛЮБОГО DATABASE SERVER
ALES ИЗМЕНЕНИЕ ЛЮБОГО EVENT NOTIFICATION SERVER
ALHE ИЗМЕНЕНИЕ ЛЮБОГО ENDPOINT SERVER
ALLG ИЗМЕНЕНИЕ ЛЮБОГО LOGIN SERVER
ALLS ИЗМЕНИТЬ ЛЮБОЙ ПОДКЛЮЧЕННЫЙ СЕРВЕР SERVER
ALRS ИЗМЕНИТЬ РЕСУРСЫ SERVER
ALSR ИЗМЕНЕНИЕ ЛЮБОГО SERVER ROLE SERVER
ALSS Изменить состояние сервера (ALTER SERVER STATE) SERVER
ALST ИЗМЕНИТЬ НАСТРОЙКИ SERVER
ALTR ALTER TRACE (изменение трассировки) SERVER
АУТЕНТИФИКАЦИЯ АУТЕНТИФИЦИРУЙТЕ СЕРВЕР SERVER
CADB ПОДКЛЮЧИТЬ ЛЮБОЙ DATABASE SERVER
CL ПРОИЗВОДИТЕЛЬНОСТИ ENDPOINT, LOGIN
CL сервер управления SERVER
CO ПОДКЛЮЧЕНИЕ ENDPOINT
COSQ CONNECT SQL SERVER
CRAC CREATE AVAILABILITY GROUP SERVER
CRDB СОЗДАТЬ ЛЮБОЙ DATABASE SERVER
CRDE СОЗДАТЬ DDL EVENT NOTIFICATION SERVER
CRHE CREATE ENDPOINT SERVER
CRSR CREATE SERVER ROLE SERVER
CRTE СОЗДАТЬ ТРАССЁР EVENT NOTIFICATION SERVER
IAL ИМИТИРУЙТЕ ЛЮБОГО LOGIN SERVER
"IM" (Обмен мгновенными сообщениями); IMPERSONATE LOGIN
SHDN SHUTDOWN SERVER
SUS ВЫБЕРИТЕ ВСЕ USER ЗАЩИЩЁННЫЕ ЭЛЕМЕНТЫ SERVER
TO ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ ENDPOINT
VW VIEW ОПРЕДЕЛЕНИЕ ENDPOINT, LOGIN
VWAD VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ SERVER
VWDB VIEW ЛЮБОЙ DATABASE SERVER
VWSS VIEW СОСТОЯНИЕ СЕРВЕРА SERVER
XA ВНЕШНИЙ ДОСТУП SERVER
XU НЕБЕЗОПАСНО ASSEMBLY SERVER

Разрешения

Любой пользователь может видеть свои собственные разрешения. Чтобы увидеть разрешения для других входов, требуется VIEW ОПРЕДЕЛЕНИЕ, ИЗМЕНЕНИЕ ЛЮБОГО LOGIN, или любое разрешение при входе. Чтобы увидеть пользовательские серверные роли, требуется ALTER ANY SERVER ROLE, или членство в роли.

Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Разрешения для SQL Server 2022 и более поздних версий

Требуется разрешение VIEW ANY SECURITY DEFINITION на сервере.

Примеры

Следующий запрос перечисляет разрешения, явно предоставленные или отклоненные для участников на уровне сервера.

Внимание

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

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pe.state_desc, pe.permission_name   
FROM sys.server_principals AS pr   
JOIN sys.server_permissions AS pe   
    ON pe.grantee_principal_id = pr.principal_id;  

См. также

Представления каталога безопасности (Transact-SQL)
Защищаемые объекты
Представления каталога (Transact-SQL)
Разрешения (ядро СУБД)
Иерархия разрешений (ядро СУБД)