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. |
Verwenden Sie die ALTER SERVER ROLE (Transact-SQL)-Anweisung, um die Serverrollenmitgliedschaft hinzuzufügen oder zu entfernen.
Berechtigungen
Anmeldungen können ihre eigene Serverrollenmitgliedschaft anzeigen und die principal_id der Mitglieder der festen Serverrollen anzeigen. Zum Anzeigen aller Serverrollenmitgliedschaften ist die VIEW ANY DEFINITION-Berechtigung oder -Mitgliedschaft in der festen Serverrolle des SecurityAdmin erforderlich.
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)