Freigeben über


sys.database_principals (Transact-SQL)

Gibt eine Zeile für jeden Sicherheitsprinzipal in einer SQL Server-Datenbank zurück.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Spaltenname

Datentyp

Beschreibung

name

sysname

Der Name des Prinzipals, der innerhalb der Datenbank eindeutig ist.

principal_id

int

Die ID des Prinzipals, die innerhalb der Datenbank eindeutig ist.

Typ

char(1)

Prinzipaltyp:

S = SQL-Benutzer

U = Windows-Benutzer

G = Windows-Gruppe

A = Anwendungsrolle

R = Datenbankrolle

C = Einem Zertifikat zugeordneter Benutzer

K = Einem asymmetrischen Schlüssel zugeordneter Benutzer

type_desc

nvarchar(60)

Beschreibung des Prinzipaltyps.

SQL_USER

WINDOWS_USER

WINDOWS_GROUP

APPLICATION_ROLE

DATABASE_ROLE

CERTIFICATE_MAPPED_USER

ASYMMETRIC_KEY_MAPPED_USER

default_schema_name

sysname

Name, der verwendet werden soll, wenn der SQL-Name kein Schema angibt. NULL für Prinzipale, die nicht vom Typ S, U oder A sind.

create_date

datetime

Der Zeitpunkt, zu dem der Prinzipal erstellt wurde.

modify_date

datetime

Der Zeitpunkt, zu dem der Prinzipal zum letzten Mal geändert wurde.

owning_principal_id

int

ID des Prinzipals, der der Besitzer dieses Prinzipals ist. Alle Prinzipale außer Datenbankrollen müssen im Besitz von dbo sein.

sid

varbinary(85)

Sicherheits-ID (SID) des Prinzipals. NULL für SYS und INFORMATION SCHEMAS.

is_fixed_role

bit

Falls 1, stellt diese Zeile einen Eintrag für eine der festen Datenbankrollen dar: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader oder db_denydatawriter.

authentication_type

int

Gibt den Authentifizierungstyp an.

Wert

Beschreibung

0

Keine Authentifizierung

1

Instanzauthentifizierung

2

Datenbankauthentifizierung

3

Windows-Authentifizierung

Gilt für: SQL Server 2012 bis SQL Server 2014.

authentication_type_desc

nvarchar(60)

Beschreibung des Authentifizierungstyps.

Wert

Beschreibung

NONE

Keine Authentifizierung

INSTANCE

Instanzauthentifizierung

DATABASE

Datenbankauthentifizierung

WINDOWS

Windows-Authentifizierung

Gilt für: SQL Server 2012 bis SQL Server 2014.

default_language_name

sysname

Gibt die Standardsprache für diesen Prinzipal an.

Gilt für: SQL Server 2012 bis SQL Server 2014.

default_language_lcid

int

Gibt die Standard-LCID für diesen Prinzipal an.

Gilt für: SQL Server 2012 bis SQL Server 2014.

Hinweise

Die PasswordLastSetTime-Eigenschaften sind in allen unterstützten Konfigurationen von SQL Server verfügbar, die anderen Eigenschaften jedoch nur, wenn SQL Server unter Windows Server 2003 ausgeführt wird und CHECK_POLICY und CHECK_EXPIRATION aktiviert sind. Weitere Informationen finden Sie unter Kennwortrichtlinie.

Berechtigungen

Jeder Benutzer kann den eigenen Benutzernamen, die Systembenutzer und die festen Datenbankrollen anzeigen. Zum Anzeigen anderer Benutzer ist ALTER ANY USER oder eine Berechtigung für den Benutzer erforderlich. Zum Anzeigen benutzerdefinierter Rollen ist ALTER ANY ROLE oder die Mitgliedschaft in der Rolle erforderlich.

Beispiele

A: Auflisten aller Berechtigungen von Datenbankprinzipalen

Mit der folgenden Abfrage werden die Berechtigungen aufgelistet, die Datenbankprinzipalen ausdrücklich gewährt oder verweigert wurden.

Wichtig

Die Berechtigungen von festen Datenbankrollen werden nicht in sys.database_permissions aufgeführt.Daher können Datenbankprinzipale über zusätzliche Berechtigungen verfügen, die hier nicht aufgeführt werden.

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;

G. Auflisten von Berechtigungen für Schemaobjekte in einer Datenbank

Die folgende Abfrage verknüpft sys.database_principals und sys.database_permissions mit sys.objects und sys.schemas, um Berechtigungen aufzulisten, die bestimmten Schemaobjekten gewährt oder verweigert wurden.

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;

Siehe auch

Verweis

Katalogsichten (Transact-SQL)

Sicherheitskatalogsichten (Transact-SQL)

Konzepte

Prinzipale (Datenbankmodul)