sys.server_principals (Transact-SQL)

Применяется к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Аналитические платформенные системы (PDW)

Содержит одну строку для каждого участника уровня сервера.

Примечание.

Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).

Имя столбца Тип данных Description
name sysname Имя участника. Уникален в пределах сервера.
principal_id int Идентификатор участника. Уникален в пределах сервера.
Sid varbinary(85) Идентификатор SID (Security-IDentifier, идентификатор защиты) участника. Для участника Windows соответствует идентификатору SID Windows.
type char(1) Тип участника:

S = имя входа SQL

U = имя входа Windows

G = группа Windows

R = роль сервера

C = имя входа, сопоставленное сертификату

E = внешний вход из идентификатора Microsoft Entra

X = внешняя группа из группы или приложений Microsoft Entra

K = имя входа, сопоставленное асимметричному ключу
type_desc nvarchar(60) Описание типа участника:

SQL_LOGIN

WINDOWS_LOGIN

WINDOWS_GROUP

SERVER_ROLE

CERTIFICATE_MAPPED_LOGIN

EXTERNAL_LOGIN

EXTERNAL_GROUP

ASYMMETRIC_KEY_MAPPED_LOGIN
is_disabled int 1 = имя входа отключено.
create_date datetime Время создания участника.
modify_date datetime Время последнего изменения определения участника.
default_database_name sysname База данных участника по умолчанию.
default_language_name sysname Язык участника по умолчанию.
credential_id int Идентификатор учетных данных, связанный с участником. Если с участником не связаны никакие учетные данные, идентификатор credential_id будет иметь значение NULL.
owning_principal_id int Principal_id владельца роли сервера. NULL, если участник не является ролью сервера.
is_fixed_role bit Возвращает значение 1, если субъект является одной из встроенных ролей сервера с фиксированными разрешениями. Дополнительные сведения см. в статье Роли уровня сервера.

Разрешения

Любое имя входа может видеть собственное имя входа, системные имена входа и предопределенные роли сервера. Для просмотра других имен входа требуется разрешение ALTER ANY LOGIN или разрешение на имя входа. Для просмотра определяемых пользователем ролей сервера необходимо иметь разрешение ALTER ANY SERVER ROLE или быть членом роли.

В База данных SQL Azure только следующие субъекты могут видеть все имена входа:

  • члены роли сервера ##MS_LoginManager## или специальная роль входа в роль базы данных вmaster
  • Администратор Microsoft Entra и администратор SQL Server

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

Примеры

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

Внимание

Разрешения фиксированных ролей сервера (кроме общедоступных) не отображаются в 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;  

Примечание.

Разрешения предопределенных ролей сервера не отображаются в sys.server_permissions.

См. также

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