sys.database_principals (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
Возвращает строку для каждого субъекта безопасности в базе данных SQL Server.
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Описания столбцов
Имя столбца | Тип данных | Description |
---|---|---|
name | sysname | Имя участника, уникальное в пределах базы данных. |
principal_id | int | Идентификатор участника, уникальный в пределах базы данных. |
type | char(1) | Тип участника: A = роль приложения C = пользователь сопоставлен с сертификатом E = внешний пользователь из идентификатора Microsoft Entra G = группа Windows K = пользователь сопоставлен с асимметричным ключом R = роль базы данных S = пользователь SQL U = пользователь Windows X = внешняя группа из группы или приложений Microsoft Entra |
type_desc | nvarchar(60) | Описание типа участника. APPLICATION_ROLE CERTIFICATE_MAPPED_USER EXTERNAL_USER WINDOWS_GROUP ASYMMETRIC_KEY_MAPPED_USER DATABASE_ROLE SQL_USER WINDOWS_USER EXTERNAL_GROUPS |
default_schema_name | sysname | Имя, используемое в случае, когда схема не определяется именем SQL. NULL для участников с типами, отличными от S, U или A. |
create_date | datetime | Время создания участника. |
modify_date | datetime | Время последнего изменения участника. |
owning_principal_id | int | Идентификатор участника, являющегося владельцем данного участника. Все фиксированные роли базы данных принадлежат dbo по умолчанию. |
ид безопасности | varbinary(85) | SID (идентификатор защиты) участника. NULL для SYS и INFORMATION SCHEMAS. |
is_fixed_role | bit | Если 1, эта строка представляет запись для одной из предопределенных ролей базы данных: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter. |
authentication_type | int | Область применения: SQL Server 2012 (11.x) и более поздних версий. Обозначает тип проверки подлинности. Ниже приведены возможные значения и их описания. 0: проверка подлинности отсутствует 1. Проверка подлинности экземпляра 2. Проверка подлинности базы данных 3: проверка подлинности Windows 4. Проверка подлинности Microsoft Entra |
authentication_type_desc | nvarchar(60) | Область применения: SQL Server 2012 (11.x) и более поздних версий. Описание типа проверки подлинности. Ниже приведены возможные значения и их описания. NONE : проверка подлинности отсутствуетINSTANCE : проверка подлинности экземпляраDATABASE : проверка подлинности базы данныхWINDOWS : проверка подлинности WindowsEXTERNAL : проверка подлинности Microsoft Entra |
default_language_name | sysname | Область применения: SQL Server 2012 (11.x) и более поздних версий. Обозначает язык по умолчанию для участника. |
default_language_lcid | int | Область применения: SQL Server 2012 (11.x) и более поздних версий. Обозначает код языка по умолчанию для участника. |
allow_encrypted_value_modifications | bit | Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL. Отключает проверки шифрованных метаданных на сервере в операциях массового копирования. Это позволяет пользователю массово копировать данные, зашифрованные с помощью Always Encrypted, между таблицами или базами данных, без расшифровки данных. Значение по умолчанию — OFF. |
Замечания
Свойства PasswordLastSetTime доступны во всех поддерживаемых конфигурациях SQL Server, но остальные свойства доступны только в том случае, если SQL Server работает в Windows Server 2003 или более поздней версии, а CHECK_POLICY и CHECK_EXPIRATION включены. Дополнительные сведения см. в разделе "Политика паролей ". Значения principal_id могут использоваться повторно в том случае, если субъекты были удалены и поэтому не гарантированы постоянно увеличиваться.
Разрешения
Любой пользователь может видеть собственное имя пользователя, пользователей системы и предопределенные роли базы данных. Для просмотра данных других пользователей требуется разрешение ALTER ANY USER или разрешение на доступ к данным пользователя. Для просмотра определяемых пользователем ролей необходимо иметь разрешение ALTER ANY ROLE или быть членом роли.
Примеры
Ответ. Перечисление всех разрешений субъектов базы данных
Следующий запрос перечисляет разрешения, явно предоставленные или отклоненные для участников базы данных.
Внимание
Разрешения предопределенных ролей базы данных не отображаются в sys.database_permissions. Поэтому участники базы данных могут иметь дополнительные разрешения, не перечисленные здесь.
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;
B. Перечисление разрешений на объекты схемы в базе данных
Следующий запрос объединяет sys.database_principals и sys.database_permissions с sys.objects и sys.schemas, чтобы перечислить разрешения, предоставленные или отклоненные для определенных объектов схемы.
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc,
pe.permission_name, s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id
JOIN sys.objects AS o
ON pe.major_id = o.object_id
JOIN sys.schemas AS s
ON o.schema_id = s.schema_id;
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
C. Перечисление всех разрешений субъектов базы данных
Следующий запрос перечисляет разрешения, явно предоставленные или отклоненные для участников базы данных.
Внимание
Разрешения фиксированных ролей базы данных не отображаются sys.database_permissions
. Поэтому участники базы данных могут иметь дополнительные разрешения, не перечисленные здесь.
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;
D. Перечисление разрешений на объекты схемы в базе данных
Следующие запросы присоединяются sys.database_principals
и sys.database_permissions
sys.objects
sys.schemas
к списку разрешений, предоставленных или запрещенных для определенных объектов схемы.
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc,
pe.permission_name, s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id
JOIN sys.objects AS o
ON pe.major_id = o.object_id
JOIN sys.schemas AS s
ON o.schema_id = s.schema_id;
См. также
Субъекты (ядро СУБД)
sys.server_principals (Transact-SQL)
Представления каталога безопасности (Transact-SQL)
Пользователи автономной базы данных: создание переносимой базы данных
Подключение к SQL Azure с помощью проверки подлинности Microsoft Entra