ALTER ROLE (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance SQL Analysen-Endpunkt in Microsoft Fabric Warehouse 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
[;]
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)