Teilen über


DROP-SERVER-Rolle (Transact-SQL)

Gilt für: SQL Server Azure SQL verwaltete Instanz Azure Synapse Analytics AnalyticsPlatform System (PDW)

Entfernt eine benutzerdefinierte Serverrolle.

Benutzerdefinierte Serverrollen wurden in SQL Server 2012 (11.x) eingeführt.

Transact-SQL-Syntaxkonventionen

Syntax

DROP SERVER ROLE role_name
[ ; ]

Argumente

role_name

Gibt die benutzerdefinierte Serverrolle an, die vom Server gelöscht werden soll.

Bemerkungen

Benutzerdefinierte Serverrollen, die Securables besitzen, können nicht vom Server entfernt werden. Wenn eine benutzerdefinierte Serverrolle mit sicherungsfähigen Elementen gelöscht werden soll, müssen Sie zunächst den Besitz der sicherungsfähigen Elemente übertragen oder sie aus der Datenbank löschen.

Benutzerdefinierte Serverrollen mit Mitgliedern können nicht gestrichen werden. Um eine benutzerdefinierte Serverrolle mit Mitgliedern zu löschen, müssen Sie zuerst Mitglieder der Rolle mit ALTER SERVER ROLE entfernen.

Feste Serverrollen können nicht entfernt werden.

Sie können die sys.server_role_members-Katalogsicht abfragen, um Informationen zu Rollenmitgliedschaften anzuzeigen.

Berechtigungen

Erfordert CONTROL eine Berechtigung für die Serverrolle oder ALTER ANY SERVER ROLE Berechtigung.

Beispiele

A. Löschen einer Serverrolle

Im folgenden Beispiel wird die Serverrolle purchasing gelöscht.

DROP SERVER ROLE purchasing;
GO

B. Anzeigen der Rollenmitgliedschaft

Um die Rollenmitgliedschaft anzuzeigen, nutzen Sie die Seite Server Role (Members) im SQL Server Management Studio oder führen folgende Abfrage aus:

SELECT SRM.role_principal_id,
       SP.name AS Role_Name,
       SRM.member_principal_id,
       SP2.name AS Member_Name
FROM sys.server_role_members AS SRM
     INNER JOIN sys.server_principals AS SP
         ON SRM.Role_principal_id = SP.principal_id
     INNER JOIN sys.server_principals AS SP2
         ON SRM.member_principal_id = SP2.principal_id
ORDER BY SP.name, SP2.name;

C. Anzeigen der Rollenmitgliedschaft

Um zu ermitteln, ob eine Serverrolle eine andere Serverrolle besitzt, führen Sie die folgende Abfrage aus:

SELECT SP1.name AS RoleOwner,
       SP2.name AS Server_Role
FROM sys.server_principals AS SP1
     INNER JOIN sys.server_principals AS SP2
         ON SP1.principal_id = SP2.owning_principal_id
ORDER BY SP1.name;