Freigeben über


ALTER ROLE (Transact-SQL)

Fügt Mitglieder zu einer Datenbankrolle hinzu oder ändert den Namen einer benutzerdefinierten Datenbankrolle in SQL Server.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

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

-- Windows Azure SQL Database Syntax
ALTER ROLE role_name WITH NAME = new_name
[;]

-- Core Syntax (common to all SQL Server versions and SQL Database) 
ALTER ROLE role_name WITH NAME = new_name
[;]

Argumente

  • role_name
    Der Name der zu ändernden Rolle.

  • ADD MEMBER database_principal
    Fügt den angegebenen Datenbankprinzipal der Datenbankrolle hinzu. database_principal kann ein Benutzer oder eine benutzerdefinierte Datenbankrolle sein. database_principal darf keine feste Datenbankrolle oder ein Serverprinzipal sein.

    Gilt für: SQL Server 2012 bis SQL Server 2014.

  • DROP MEMBER database_principal
    Entfernt den angegebenen Datenbankprinzipal aus der Datenbankrolle. database_principal kann ein Benutzer oder eine benutzerdefinierte Datenbankrolle sein. database_principal darf keine feste Datenbankrolle oder ein Serverprinzipal sein.

    Gilt für: SQL Server 2012 bis SQL Server 2014.

  • WITH NAME =new_name
    Gibt den neuen Namen der benutzerdefinierten Rolle an. Dieser Name darf nicht bereits in der Datenbank vorhanden sein. Sie können den Namen von festen Datenbankrollen nicht ändern.

Hinweise

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

Datenbankrollen werden in den Katalogsichten sys.database_role_members und sys.database_principals angezeigt.

Warnung

Mit SQL Server 2005 wurde das Verhalten von Schemas geändert. Deshalb werden von Code, der voraussetzt, dass Schemas und Datenbankbenutzer äquivalent sind, möglicherweise keine richtigen Ergebnisse mehr zurückgegeben. Alte Katalogsichten, einschließlich sysobjects, sollten nicht in einer Datenbank verwendet werden, in der bereits eine der folgenden DDL-Anweisungen verwendet wurde: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. In solchen Datenbanken müssen Sie stattdessen neue Katalogsichten verwenden. In den neuen Katalogsichten wird die Trennung zwischen Prinzipalen und Schemas berücksichtigt, die in SQL Server 2005 eingeführt wurde. Weitere Informationen zu Katalogsichten finden Sie unter Katalogsichten (Transact-SQL).

Berechtigungen

Erfordert die ALTER ANY ROLE-Berechtigung für die Datenbank, die ALTER-Berechtigung für die Rolle oder die Mitgliedschaft in der db_securityadmin.

Beispiele

A.Ändern des Namens einer Datenbankrolle

Im folgenden Beispiel wird der Name der buyers-Rolle in purchasing geändert.

USE AdventureWorks2012;
ALTER ROLE buyers WITH NAME = purchasing;
GO

B.Hinzufügen und Entfernen von Rollenmitgliedern

Im folgenden Beispiel wird eine Rolle mit dem Namen Sales erstellt und ein Benutzer mit dem Namen Barry hinzugefügt und dann entfernt.

Gilt für: SQL Server 2012 bis SQL Server 2014.

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

Siehe auch

Verweis

CREATE ROLE (Transact-SQL)

DROP ROLE (Transact-SQL)

sp_addrolemember (Transact-SQL)

sys.database_role_members (Transact-SQL)

sys.database_principals (Transact-SQL)

Konzepte

Prinzipale (Datenbankmodul)