Delen via


sys.database_principals (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

Retourneert een rij voor elke beveiligingsprincipaal in een SQL Server-database.

Note

Microsoft Entra-id werd voorheen Azure Active Directory (Azure AD) genoemd.

Column descriptions

Column name Data type Description
name sysname Naam van principal, uniek in de database.
principal_id int Id van principal, uniek in de database.
type char(1) Principal type:

A = Toepassingsrol

C = Gebruiker toegewezen aan een certificaat

E = Externe gebruiker van Microsoft Entra-id

G = Windows-groep

K = Gebruiker die is toegewezen aan een asymmetrische sleutel

R = Databaserol

S = SQL-gebruiker

U = Windows-gebruiker

X = Externe groep van Microsoft Entra-groep of -toepassingen
type_desc nvarchar(60) Beschrijving van het principal-type.

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 De naam die moet worden gebruikt wanneer een SQL-naam geen schema opgeeft. Null voor principals van het type S, U of A.
create_date datetime Tijdstip waarop de principal is gemaakt.
modify_date datetime Tijdstip waarop de principal voor het laatst is gewijzigd.
owning_principal_id int Id van de principal die eigenaar is van deze principal. Alle vaste databaserollen zijn standaard eigendom van dbo .
sid varbinary(85) SID (beveiligings-id) van de principal. NULL voor SYS- en INFORMATIESCHEMA'S.
is_fixed_role bit Als 1, vertegenwoordigt deze rij een vermelding voor een van de vaste databaserollen: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.
authentication_type int Van toepassing op: SQL Server 2012 (11.x) en hoger.

Geeft het verificatietype aan. Hier volgen de mogelijke waarden en de bijbehorende beschrijvingen.

0: Geen verificatie
1: Instantieverificatie
2: Databaseverificatie
3: Windows-verificatie
4: Microsoft Entra-verificatie
authentication_type_desc nvarchar(60) Van toepassing op: SQL Server 2012 (11.x) en hoger.

Beschrijving van het verificatietype. Hier volgen de mogelijke waarden en de bijbehorende beschrijvingen.

NONE : Geen verificatie
INSTANCE : Instantieverificatie
DATABASE : Databaseverificatie
WINDOWS : Windows-verificatie
EXTERNAL: Microsoft Entra-verificatie
default_language_name sysname Van toepassing op: SQL Server 2012 (11.x) en hoger.

Hiermee wordt de standaardtaal voor deze principal opgegeven.
default_language_lcid int Van toepassing op: SQL Server 2012 (11.x) en hoger.

Hiermee wordt de standaard-LCID voor deze principal opgegeven.
allow_encrypted_value_modifications bit van toepassing op: SQL Server 2016 (13.x) en hoger, SQL Database.

Onderdrukt cryptografische metagegevenscontroles op de server in bulkkopiebewerkingen. Hierdoor kan de gebruiker gegevens bulksgewijs kopiëren die zijn versleuteld met Always Encrypted, tussen tabellen of databases, zonder de gegevens te ontsleutelen. De standaardwaarde is UITGESCHAKELD.

Remarks

De eigenschappen PasswordLastSetTime zijn beschikbaar in alle ondersteunde configuraties van SQL Server, maar de andere eigenschappen zijn alleen beschikbaar wanneer SQL Server wordt uitgevoerd op Windows Server 2003 of hoger en zowel CHECK_POLICY als CHECK_EXPIRATION zijn ingeschakeld. Zie Wachtwoordbeleid voor meer informatie. De waarden van de principal_id kunnen opnieuw worden gebruikt in het geval dat principals zijn verwijderd en daarom niet gegarandeerd steeds groter worden.

Permissions

Elke gebruiker kan zijn eigen gebruikersnaam, de systeemgebruikers en de vaste databaserollen zien. Als u andere gebruikers wilt zien, moet u ALTER ANY USER of een machtiging voor de gebruiker hebben. Als u door de gebruiker gedefinieerde rollen wilt zien, moet u ALTER ANY ROLE of lidmaatschap van de rol hebben.

Examples

A: Alle machtigingen van database-principals weergeven

In de volgende query worden de machtigingen vermeld die expliciet aan database-principals zijn verleend of geweigerd.

Important

De machtigingen van vaste databaserollen worden niet weergegeven in sys.database_permissions. Database-principals hebben daarom mogelijk aanvullende machtigingen die hier niet worden vermeld.

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: Machtigingen weergeven voor schemaobjecten in een database

Met de volgende query worden sys.database_principals en sys.database_permissions toegevoegd aan sys.objects en sys.schema's om machtigingen weer te geven die aan specifieke schemaobjecten zijn verleend of geweigerd.

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;  

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

C: Alle machtigingen van database-principals weergeven

In de volgende query worden de machtigingen vermeld die expliciet aan database-principals zijn verleend of geweigerd.

Important

De machtigingen van vaste databaserollen worden niet weergegeven in sys.database_permissions. Database-principals hebben daarom mogelijk aanvullende machtigingen die hier niet worden vermeld.

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: Machtigingen weergeven voor schemaobjecten in een database

De volgende query wordt samengevoegd sys.database_principals en aan sys.objects en sys.schemassys.database_permissions om machtigingen weer te geven die zijn verleend aan of geweigerd voor specifieke schemaobjecten.

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 (Databasemotor)
sys.server_principals (Transact-SQL)
Beveiligingscatalogusweergaven (Transact-SQL)
Ingesloten databasegebruikers: een draagbare database maken
Verbinding maken met Azure SQL met Microsoft Entra-verificatie