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

S’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseS’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Retourne une ligne pour chaque principal de sécurité d'une base de données dans SQL ServerSQL Server.Returns a row for each security principal in a SQL ServerSQL Server database.

Nom de la colonneColumn name Type de donnéesData type DescriptionDescription
namename sysnamesysname Nom du principal, unique dans la base de données.Name of principal, unique within the database.
principal_idprincipal_id intint ID du principal, unique dans la base de données.ID of principal, unique within the database.
typetype char(1)char(1) Type de principal :Principal type:

A = rôle d'applicationA = Application role

C = utilisateur mappé à un certificatC = User mapped to a certificate

E = utilisateur externe de Azure Active DirectoryE = External user from Azure Active Directory

G = groupe WindowsG = Windows group

K = utilisateur mappé à une clé asymétriqueK = User mapped to an asymmetric key

R = rôle de base de donnéesR = Database role

S = utilisateur SQLS = SQL user

U = utilisateur WindowsU = Windows user

X = groupe externe du groupe Azure Active Directory ou des applicationsX = External group from Azure Active Directory group or applications
type_desctype_desc nvarchar(60)nvarchar(60) Description du type de principal.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 Nom à utiliser lorsque le nom SQL ne spécifie pas de schéma.Name to be used when SQL name does not specify a schema. Null pour les principaux qui ne sont pas de type S, U ou A.Null for principals not of type S, U, or A.
create_datecreate_date datetimedatetime Heure de création du principal.Time at which the principal was created.
modify_datemodify_date datetimedatetime Heure de la dernière modification du principal.Time at which the principal was last modified.
owning_principal_idowning_principal_id intint Identificateur du principal qui possède ce principal.ID of the principal that owns this principal. Tous les rôles de base de données fixes sont détenus par dbo par défaut.All fixed Database Roles are owned by dbo by default.
sidsid varbinary(85)varbinary(85) SID (identificateur de sécurité) du principal.SID (Security Identifier) of the principal. NULL pour SYS et INFORMATION SCHEMAS.NULL for SYS and INFORMATION SCHEMAS.
is_fixed_roleis_fixed_role bitbit Avec la valeur 1, cette ligne représente une entrée pour un des rôles de base de données fixes : 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 S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Signifie le type d'authentification.Signifies authentication type. Voici les valeurs possibles et leurs descriptions.The following are the possible values and their descriptions.

0 : aucune authentification0 : No authentication
1 : authentification de l’instance1 : Instance authentication
2 : authentification de base de données2 : Database authentication
3 : authentification Windows3 : Windows authentication
4 : authentification Azure Active Directory4 : Azure Active Directory authentication
authentication_type_descauthentication_type_desc nvarchar(60)nvarchar(60) S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Description du type d'authentification.Description of the authentication type. Voici les valeurs possibles et leurs descriptions.The following are the possible values and their descriptions.

NONE : aucune authentificationNONE : No authentication
INSTANCE : authentification de l’instanceINSTANCE : Instance authentication
BASE de données : authentification de base de donnéesDATABASE : Database authentication
WINDOWS : authentification WindowsWINDOWS : Windows authentication
EXTERNE : authentification Azure Active DirectoryEXTERNAL: Azure Active Directory authentication
default_language_namedefault_language_name sysnamesysname S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Signifie la langue par défaut de ce principal.Signifies the default language for this principal.
default_language_lciddefault_language_lcid intint S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Signifie le LCID par défaut de ce principal.Signifies the default LCID for this principal.
allow_encrypted_value_modificationsallow_encrypted_value_modifications bitbit S’applique à : SQL Server 2016 (13.x)SQL Server 2016 (13.x) et versions ultérieures, SQL DatabaseSQL Database.Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later, SQL DatabaseSQL Database.

Supprime les contrôles de métadonnées de chiffrement sur le serveur dans les opérations de copie en bloc.Suppresses cryptographic metadata checks on the server in bulk copy operations. Cela permet à l’utilisateur de copier en bloc des données chiffrées à l’aide de Always Encrypted, entre des tables ou des bases de données, sans déchiffrer les données.This enables the user to bulk copy data encrypted using Always Encrypted, between tables or databases, without decrypting the data. La valeur par défaut est OFF.The default is OFF.

NotesRemarks

Les propriétés PasswordLastSetTime sont disponibles sur toutes les configurations prises en charge de SQL Server, mais les autres propriétés sont uniquement disponibles lorsque SQL Server s’exécute sur Windows Server 2003 ou version ultérieure et que CHECK_POLICY et CHECK_EXPIRATION sont activés.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. Pour plus d’informations, consultez stratégie de mot de passe .See Password Policy for more information. Les valeurs de la principal_id peuvent être réutilisées dans le cas où les principaux ont été supprimés et qu’il n’est donc pas garanti qu’elles soient toujours plus nombreuses.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.

AutorisationsPermissions

Tout utilisateur peut consulter son nom d'utilisateur, les utilisateurs système et les rôles de base de données fixes.Any user can see their own user name, the system users, and the fixed database roles. Pour voir les autres utilisateurs, vous devez disposer de l'autorisation ALTER ANY USER, ou d'une autorisation sur l'utilisateur.To see other users, requires ALTER ANY USER, or a permission on the user. Pour afficher les rôles définis par l'utilisateur, vous devez disposer de l'autorisation ALTER ANY ROLE, ou appartenir au rôle.To see user-defined roles, requires ALTER ANY ROLE, or membership in the role.

ExemplesExamples

A : Énumération de toutes les autorisations des principaux de base de donnéesA: Listing all the permissions of database principals

La requête suivante énumère les autorisations accordées ou refusées explicitement aux principaux de base de données.The following query lists the permissions explicitly granted or denied to database principals.

Important

Les autorisations de rôles de base de données fixes n'apparaissent pas dans sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Par conséquent, les principaux de base de données peuvent avoir des autorisations supplémentaires non répertoriées ici.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. Énumération des autorisations sur les objets de schéma dans une base de donnéesB: Listing permissions on schema objects within a database

La requête suivante joint sys.database_principals et sys.database_permissions à sys.objects et sys.schemas pour répertorier les autorisations accordées ou refusées sur des objets de schéma spécifiques.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;  

Exemples : Azure Synapse AnalyticsAzure Synapse Analytics et Parallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse AnalyticsAzure Synapse Analytics and Parallel Data WarehouseParallel Data Warehouse

C : liste de toutes les autorisations des principaux de base de donnéesC: Listing all the permissions of database principals

La requête suivante énumère les autorisations accordées ou refusées explicitement aux principaux de base de données.The following query lists the permissions explicitly granted or denied to database principals.

Important

Les autorisations des rôles de base de données fixes n’apparaissent pas dans sys.database_permissions .The permissions of fixed database roles do not appear in sys.database_permissions. Par conséquent, les principaux de base de données peuvent avoir des autorisations supplémentaires non répertoriées ici.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 : énumération des autorisations sur les objets de schéma dans une base de donnéesD: Listing permissions on schema objects within a database

La requête suivante joint sys.database_principals et sys.database_permissions à sys.objects et sys.schemas pour répertorier les autorisations accordées ou refusées à des objets de schéma spécifiques.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;  

Voir aussiSee Also

Principaux (moteur de base de données) Principals (Database Engine)
sys.server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
Affichages catalogue de sécurité (Transact-SQL) Security Catalog Views (Transact-SQL)
Utilisateurs de base de données à relation contenant-contenu-rendre votre base de données portable Contained Database Users - Making Your Database Portable
Connexion à SQL Database avec l’authentification Azure Active DirectoryConnecting to SQL Database By Using Azure Active Directory Authentication