ALTER ROLE (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceSQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Fügt Mitglieder zu einer Datenbankrolle hinzu, entfernt Mitglieder einer Datenbankrolle oder ändert den Namen einer benutzerdefinierten Datenbankrolle.

Hinweis

Um Mitglieder zu Rollen in Azure Synapse Analytics und Analytics Platform System (PDW) hinzuzufügen oder daraus zu entfernen, verwenden Sie sp_addrolemember (Transact-SQL) bzw. sp_droprolemember (Transact-SQL).

Transact-SQL-Syntaxkonventionen

Syntax

Syntax für SQL Server (ab 2012), Azure SQL Managed Instance, Azure SQL Database und Microsoft Fabric.

ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  

Syntax für SQL Server für Versionen vor 2012.

-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

role_name
Gilt für: SQL Server (ab 2008), Azure SQL-Datenbank, Azure SQL Managed Instance

Gibt die Datenbankrolle an, die geändert werden soll.

ADD MEMBER database_principal
Gilt für: SQL Server (ab 2012), Azure SQL-Datenbank, Azure SQL Managed Instance

Legt fest, dass der Datenbankprinzipal einer Datenbankrolle als Mitglied hinzugefügt werden soll.

  • database_principal ist ein Datenbankbenutzer oder eine benutzerdefinierte Datenbankrolle.

  • database_principal darf keine feste Datenbankrolle bzw. kein Serverprinzipal sein.

DROP MEMBER database_principal
Gilt für: SQL Server (ab 2012), Azure SQL-Datenbank, Azure SQL Managed Instance

Legt fest, dass für den Datenbankprinzipal die Mitgliedschaft einer Datenbankrolle gelöscht werden soll.

  • database_principal ist ein Datenbankbenutzer oder eine benutzerdefinierte Datenbankrolle.

  • database_principal darf keine feste Datenbankrolle bzw. kein Serverprinzipal sein.

WITH NAME = new_name
Gilt für: SQL Server (ab 2008), Azure SQL-Datenbank, Azure SQL Managed Instance

Legt fest, dass der Name einer benutzerdefinierten Datenbankrolle geändert werden soll. Der neue Name darf nicht bereits in der Datenbank vorhanden sein.

Durch das Ändern des Namens einer Datenbankrolle werden die ID-Nummer, der Besitzer oder Berechtigungen der Rolle nicht geändert.

Berechtigungen

Zum Ausführen dieses Befehls benötigen Sie mindestens eine der folgenden Berechtigungen oder Gruppenmitgliedschaften:

  • die ALTER-Berechtigung für die Rolle
  • die ALTER ANY ROLE-Berechtigung für die Datenbank
  • die Mitgliedschaft in der festen Datenbankrolle db_securityadmin

Zum Ändern der Mitgliedschaft einer festen Datenbankrolle benötigen Sie darüber hinaus:

  • die Mitgliedschaft in der festen Datenbankrolle db_owner

Einschränkungen

Sie können den Namen einer festen Datenbankrolle nicht ändern.

Metadaten

Die folgenden Systemsichten enthalten Informationen zu Datenbankrollen und Datenbankprinzipalen:

Beispiele

A. Ändern eines Datenbankrollennamens

Gilt für: SQL Server (ab 2008), Azure SQL-Datenbank, Azure SQL Managed Instance

Im folgenden Beispiel wird der Name der buyers-Rolle in purchasing geändert. Dieses Beispiel kann in der AdventureWorks-Musterdatenbank ausgeführt werden.

ALTER ROLE buyers WITH NAME = purchasing;  

B. Hinzufügen oder Entfernen von Rollenmitgliedern

Gilt für: SQL Server (ab 2012), Azure SQL-Datenbank, Azure SQL Managed Instance

In folgendem Beispiel wird eine neue Datenbankrolle mit dem Namen Sales erstellt. Dieser wird der Datenbankbenutzer Barry als Mitglied hinzugefügt. Anschließend wird dieses Mitglied wieder entfernt. Dieses Beispiel kann in der AdventureWorks-Musterdatenbank ausgeführt werden.

CREATE ROLE Sales;  
ALTER ROLE Sales ADD MEMBER Barry;  
ALTER ROLE Sales DROP MEMBER Barry;  

C. Hinzufügen eines Rollenmitglieds zu speziellen Rollen für Azure SQL-Datenbank

Gilt für: Azure SQL-Datenbank

In diesem Beispiel wird eine SQL-Anmeldung in der virtuellen Masterdatenbank sowie ein Datenbankbenutzer erstellt, der mit dieser Serveranmeldung verknüpft ist. Darüber hinaus wird der Datenbankbenutzer als Mitglied der speziellen Rolle dbmanager hinzugefügt. Das Beispiel gewährt dem Benutzer Berechtigungen zum Erstellen und Löschen von Datenbanken auf einem logischen Azure SQL-Datenbankserver. Führen Sie das Beispiel in der virtuellen Masterdatenbank des logischen Azure SQL-Datenbankservers aus.

 CREATE LOGIN sqllogin_nlastname WITH password='aah3%#om1os';
    
 CREATE USER sqllogin_nlastname FOR LOGIN sqllogin_nlastname 
 WITH DEFAULT_SCHEMA = master;
    
 ALTER ROLE [dbmanager] add member sqllogin_nlastname;

Weitere Informationen

CREATE ROLE (Transact-SQL)
Prinzipale (Datenbank-Engine)
DROP ROLE (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)