sys.server_principals (Transact-SQL)

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

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

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

S = имя входа SQL

U = имя входа Windows

G = группа Windows

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

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

E = внешнее имя входа из Azure Active Directory

X = Внешняя группа из группы или приложений Azure Active Directory

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 или быть членом роли.

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

Примеры

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

Важно!

Разрешения предопределенных ролей сервера (кроме public) не отображаются в 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)
Участники (ядро СУБД)
Иерархия разрешений (компонент Database Engine)