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 | Идентификатор участника. Уникален в пределах сервера. |
ид безопасности | 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)
Субъекты (ядро СУБД)
Иерархия разрешений (ядро СУБД)