Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Gibt eine Zeile für jedes Mitglied jeder festen und benutzerdefinierten Serverrolle zurück.
| Spaltenname | Datentyp | Beschreibung |
|---|---|---|
| role_principal_id | int | Serverprinzipal-ID der Rolle. |
| member_principal_id | int | Serverprinzipal-ID des Mitglieds. |
Um eine Server-Rollenmitgliedschaft hinzuzufügen oder zu entfernen, verwenden Sie die ALTER SERVER ROLE Anweisung (Transact-SQL ).
Berechtigungen
Anmeldungen können ihre eigene Serverrollenmitgliedschaft anzeigen und die principal_id der Mitglieder der festen Serverrollen anzeigen. Um alle Server-Rollen-Mitgliedschaften anzuzeigen, benötigt man die VIEW Berechtigung ANY DEFINITION oder die Mitgliedschaft in der Securityadmin-Fixed-Server-Rolle .
Anmeldungen können auch Rollenmitgliedschaften von Rollen anzeigen, die sie besitzen.
In Azure SQL-Datenbank können Mitglieder der Serverrolle ##MS_DefinitionReader## alle Katalogansichten abfragen.
Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Beispiele
Anhand der Beispiele in diesem Abschnitt wird veranschaulicht, wie Sie Rollen auf Serverebene in Azure SQL-Datenbank verwenden.
A. Liste der Serverrollenmitglieder zurückgeben
Im folgenden Beispiel werden die Namen und IDs der Rollen und deren Member zurückgegeben.
SELECT roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
, server_role_members.member_principal_id AS MemberPrincipalID
, members.name AS MemberPrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.server_principals AS members
ON server_role_members.member_principal_id = members.principal_id
;
Hinweis
In Azure SQL-Datenbank werden SQL-Anmeldungen in der sys.server_principals Katalogansicht nicht beibehalten. Damit die Rollenmitgliedschaft auf Serverebene in Azure SQL-Datenbank abgerufen werden kann, muss die Katalogansicht sys.sql_logins verknüpft werden.
B. Azure SQL-Datenbank: Auflisten aller Prinzipale (SQL-Authentifizierung), die Mitglieder einer Rolle auf Serverebene sind
Mit der folgenden Anweisung werden alle Mitglieder aller festen Rollen auf Serverebene zurückgegeben, indem die Katalogsichten sys.server_role_members und sys.sql_logins verwendet werden. Diese Anweisung muss in der virtuellen Masterdatenbank ausgeführt werden.
SELECT
sql_logins.principal_id AS MemberPrincipalID
, sql_logins.name AS MemberPrincipalName
, roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.sql_logins AS sql_logins
ON server_role_members.member_principal_id = sql_logins.principal_id
;
GO
Weitere Informationen
Katalogsichten (Transact-SQL)
Sicherheitskatalogsichten (Transact-SQL)
Rollen auf Serverebene
Prinzipale (Datenbank-Engine)