sys.database_principals (Transact-SQL)sys.database_principals (Transact-SQL)

Область применения: ДаSQL Server ДаБаза данных SQL Azure ДаAzure Synapse Analytics (Хранилище данных SQL) ДаParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database YesAzure Synapse Analytics (SQL DW) YesParallel Data Warehouse

Возвращает по одной строке для каждого субъекта безопасности в базе данных SQL ServerSQL Server.Returns a row for each security principal in a SQL ServerSQL Server database.

Имя столбцаColumn name Тип данныхData type DescriptionDescription
namename имеет sysnamesysname Имя участника, уникальное в пределах базы данных.Name of principal, unique within the database.
principal_idprincipal_id intint Идентификатор участника, уникальный в пределах базы данных.ID of principal, unique within the database.
typetype char (1)char(1) Тип участника:Principal type:

A = роль приложенияA = Application role

C = пользователь сопоставлен с сертификатомC = User mapped to a certificate

E = внешний пользователь из Azure Active DirectoryE = External user from Azure Active Directory

G = группа WindowsG = Windows group

K = пользователь сопоставлен с асимметричным ключомK = User mapped to an asymmetric key

R = роль базы данныхR = Database role

S = пользователь SQLS = SQL user

U = пользователь WindowsU = Windows user

X = Внешняя группа из группы или приложений Azure Active DirectoryX = External group from Azure Active Directory group or applications
type_desctype_desc nvarchar (60)nvarchar(60) Описание типа участника.Description of principal type.

APPLICATION_ROLEAPPLICATION_ROLE

CERTIFICATE_MAPPED_USERCERTIFICATE_MAPPED_USER

EXTERNAL_USEREXTERNAL_USER

WINDOWS_GROUPWINDOWS_GROUP

ASYMMETRIC_KEY_MAPPED_USERASYMMETRIC_KEY_MAPPED_USER

DATABASE_ROLEDATABASE_ROLE

SQL_USERSQL_USER

WINDOWS_USERWINDOWS_USER

EXTERNAL_GROUPSEXTERNAL_GROUPS
default_schema_namedefault_schema_name имеет sysnamesysname Имя, используемое в случае, когда схема не определяется именем SQL.Name to be used when SQL name does not specify a schema. NULL для участников с типами, отличными от S, U или A.Null for principals not of type S, U, or A.
create_datecreate_date datetimedatetime Время создания участника.Time at which the principal was created.
modify_datemodify_date datetimedatetime Время последнего изменения участника.Time at which the principal was last modified.
owning_principal_idowning_principal_id intint Идентификатор участника, являющегося владельцем данного участника.ID of the principal that owns this principal. По умолчанию владельцем всех предопределенных ролей базы данных является dbo .All fixed Database Roles are owned by dbo by default.
sidsid varbinary (85)varbinary(85) SID (идентификатор защиты) участника.SID (Security Identifier) of the principal. NULL для SYS и INFORMATION SCHEMAS.NULL for SYS and INFORMATION SCHEMAS.
is_fixed_roleis_fixed_role bitbit Если значение равно 1, эта строка представляет запись для одной из предопределенных ролей базы данных: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.If 1, this row represents an entry for one of the fixed database roles: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.
authentication_typeauthentication_type intint Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Обозначает тип проверки подлинности.Signifies authentication type. Ниже приведены возможные значения и их описания.The following are the possible values and their descriptions.

0 — без проверки подлинности0 : No authentication
1: проверка подлинности экземпляра1 : Instance authentication
2: проверка подлинности базы данных2 : Database authentication
3: проверка подлинности Windows3 : Windows Authentication
authentication_type_descauthentication_type_desc nvarchar (60)nvarchar(60) Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Описание типа проверки подлинности.Description of the authentication type. Ниже приведены возможные значения и их описания.The following are the possible values and their descriptions.

Нет: нет проверки подлинностиNONE : No authentication
ЭКЗЕМПЛЯР: проверка подлинности экземпляраINSTANCE : Instance authentication
БАЗА данных: проверка подлинности базы данныхDATABASE : Database authentication
WINDOWS: проверка подлинности WindowsWINDOWS : Windows Authentication
default_language_namedefault_language_name имеет sysnamesysname Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Обозначает язык по умолчанию для участника.Signifies the default language for this principal.
default_language_lciddefault_language_lcid intint Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Обозначает код языка по умолчанию для участника.Signifies the default LCID for this principal.
allow_encrypted_value_modificationsallow_encrypted_value_modifications bitbit Применимо к: SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later, База данных SQLSQL Database.

Отключает проверки шифрованных метаданных на сервере в операциях массового копирования.Suppresses cryptographic metadata checks on the server in bulk copy operations. Это позволяет пользователю выполнять полное копирование данных, зашифрованных с помощью Always Encrypted, между таблицами или базами данных без расшифровки данных.This enables the user to bulk copy data encrypted using Always Encrypted, between tables or databases, without decrypting the data. Значение по умолчанию — OFF.The default is OFF.

RemarksRemarks

Свойства passwordlastsettime имеют доступны во всех поддерживаемых конфигурациях SQL Server, но другие свойства доступны только в том случае, если SQL Server работает на Windows Server 2003 или более поздней версии и включены оба CHECK_POLICY и CHECK_EXPIRATION.The PasswordLastSetTime properties are available on all supported configurations of SQL Server, but the other properties are only available when SQL Server is running on Windows Server 2003 or later and both CHECK_POLICY and CHECK_EXPIRATION are enabled. Дополнительные сведения см. в разделе Политика паролей .See Password Policy for more information. Значения principal_id могут быть повторно использованы в случае, если субъекты были удалены и, следовательно, не всегда растет.The values of the principal_id may be reused in the case that principals have been dropped and therefore is not guaranteed to be ever-increasing.

РазрешенияPermissions

Любой пользователь может видеть собственное имя пользователя, пользователей системы и предопределенные роли базы данных.Any user can see their own user name, the system users, and the fixed database roles. Для просмотра данных других пользователей требуется разрешение ALTER ANY USER или разрешение на доступ к данным пользователя.To see other users, requires ALTER ANY USER, or a permission on the user. Для просмотра определяемых пользователем ролей необходимо иметь разрешение ALTER ANY ROLE или быть членом роли.To see user-defined roles, requires ALTER ANY ROLE, or membership in the role.

ПримерыExamples

Ответ. Перечисление всех разрешений участников базы данныхA: Listing all the permissions of database principals

Следующий запрос перечисляет разрешения, явно предоставленные или отклоненные для участников базы данных.The following query lists the permissions explicitly granted or denied to database principals.

Важно!

Разрешения предопределенных ролей базы данных не отображаются в sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Поэтому участники базы данных могут иметь дополнительные разрешения, не перечисленные здесь.Therefore, database principals may have additional permissions not listed here.

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: Listing permissions on schema objects within a database

Следующий запрос объединяет sys.database_principals и sys.database_permissions с sys.objects и sys.schemas, чтобы перечислить разрешения, предоставленные или отклоненные для определенных объектов схемы.The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

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 (хранилище данных SQL)Azure Synapse Analytics (SQL DW) и Параллельное хранилище данныхParallel Data WarehouseExamples: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) and Параллельное хранилище данныхParallel Data Warehouse

В. Перечисление всех разрешений участников базы данныхC: Listing all the permissions of database principals

Следующий запрос перечисляет разрешения, явно предоставленные или отклоненные для участников базы данных.The following query lists the permissions explicitly granted or denied to database principals.

Важно!

Разрешения предопределенных ролей базы данных не отображаются в sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Поэтому участники базы данных могут иметь дополнительные разрешения, не перечисленные здесь.Therefore, database principals may have additional permissions not listed here.

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: вывод списка разрешений на объекты схемы в базе данныхD: Listing permissions on schema objects within a database

Следующий запрос присоединяется sys.database_principals sys.database_permissions к sys.objects и sys.schemas для получения списка разрешений, предоставленных или запрещенных для конкретных объектов схемы.The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

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;  

См. также:See Also

Участники (ядро СУБД) Principals (Database Engine)
sys. server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
Представления каталога безопасности ()Transact-SQL Security Catalog Views (Transact-SQL)
Пользователи автономной базы данных — Создание переносимой базы данных Contained Database Users - Making Your Database Portable
Подключение к базе данных SQL с помощью проверки подлинности Azure Active DirectoryConnecting to SQL Database By Using Azure Active Directory Authentication