Freigeben über


sp_droprole (Transact-SQL)

Entfernt eine Datenbankrolle aus der aktuellen Datenbank.

Wichtiger HinweisWichtig

In SQL Server 2005 wurde sp_droprole durch die DROP ROLE-Anweisung ersetzt. sp_droprole ist nur enthalten, um die Kompatibilität mit früheren Versionen von SQL Server sicherzustellen, und wird in einer zukünftigen Version möglicherweise nicht mehr unterstützt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_droprole [ @rolename= ] 'role'

Argumente

  • [ @rolename = ] 'role'
    Der Name der Datenbankrolle, die aus der aktuellen Datenbank entfernt werden soll. role ist vom Datentyp sysname und hat keinen Standardwert. role muss bereits in der aktuellen Datenbank vorhanden sein.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

Mit sp_droprole können nur Datenbankrollen entfernt werden.

Es ist nicht möglich, eine Datenbankrolle mit vorhandenen Mitgliedern zu entfernen. Vor dem Entfernen der Datenbankrolle müssen zunächst alle Mitglieder aus der Datenbankrolle entfernt werden. Entfernen Sie mithilfe von sp_droprolemember Benutzer aus einer Rolle. Sollten Benutzer weiterhin Mitglieder der Rolle sein, zeigen Sie diese Mitglieder mit sp_droprole an.

Feste Rollen und die public-Rolle können nicht entfernt werden.

Es ist nicht möglich, eine Rolle zu entfernen, die sicherungsfähige Elemente besitzt. Vor dem Löschen einer Anwendungsrolle, die sicherungsfähige Elemente besitzt, muss zunächst der Besitz an den sicherungsfähigen Elementen übertragen werden, oder sie müssen gelöscht werden. Verwenden Sie ALTER AUTHORIZATION, um den Besitzer von Objekten zu ändern, die nicht entfernt werden dürfen.

sp_droprole kann nicht innerhalb einer benutzerdefinierten Transaktion ausgeführt werden.

Berechtigungen

Erfordert die CONTROL-Berechtigung für die Rolle.

Beispiele

Im folgenden Beispiel wird die Sales-Anwendungsrolle entfernt.

EXEC sp_droprole 'Sales';
GO