ALTER USER (Transact-SQL)

Benennt einen Datenbankbenutzer um oder ändert sein Standardschema.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

ALTER USER user_name  
     WITH <set_item> [ ,...n ]
<set_item> ::= 
     NAME = new_user_name 
     | DEFAULT_SCHEMA = schema_name
     | LOGIN = login_name

Argumente

  • user_name
    Gibt den Namen an, durch den der Benutzer in dieser Datenbank identifiziert wird.
  • LOGIN **=**login_name
    Weist einen Benutzer einer anderen Anmeldung zu, indem die Sicherheits-ID (SID) des Benutzers so geändert wird, dass sie der Anmelde-SID entspricht.
  • NAME **=**new_user_name
    Gibt den neuen Namen des Benutzers an. new_user_name darf in der aktuellen Datenbank nicht bereits vorhanden sein.
  • DEFAULT_SCHEMA **=**schema_name
    Gibt das erste Schema an, das vom Server beim Auflösen der Namen von Objekten für diesen Benutzer durchsucht wird.

Hinweise

Wird DEFAULT_SCHEMA nicht definiert, ist dbo das Standardschema des Benutzers. DEFAULT_SCHEMA kann auf ein Schema festgelegt werden, das zurzeit nicht in der Datenbank vorhanden ist. Deshalb können Sie DEFAULT_SCHEMA einem Benutzer zuweisen, bevor das Schema erstellt wird. DEFAULT_SCHEMA kann nicht für einen Benutzer angegeben werden, der einer Windows-Gruppe, einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist.

ms176060.note(de-de,SQL.90).gifWichtig:
Der Wert von DEFAULT_SCHEMA wird ignoriert, wenn der Benutzer ein Mitglied der festen Serverrolle sysadmin ist. Alle Mitglieder der festen Serverrolle sysadmin verfügen über das Standardschema dbo.

Sie können nur den Namen eines einer Windows-Anmeldung oder -Gruppe zugeordneten Benutzers ändern, wenn die SID des neuen Benutzernamens mit der SID in der Datenbank übereinstimmt. Diese Überprüfung trägt dazu bei, das Spoofing von Windows-Anmeldungen in der Datenbank zu verhindern.

Die WITH LOGIN-Klausel ermöglicht die Neuzuordnung eines Benutzers zu einer anderen Anmeldung. Benutzer ohne Anmeldenamen, Benutzer, die einem Zertifikat zugewiesen sind, oder Benutzer, die einem asymmetrischen Schlüssel zugewiesen sind, können mit dieser Klausel nicht neu zugeordnet werden. Nur SQL Server-Benutzer und Windows-Benutzer (oder Gruppen) können neu zugeordnet werden. Die WITH LOGIN-Klausel kann nicht verwendet werden, um den Benutzertyp zu ändern, beispielsweise das Ändern eines Windows-Kontos in eine SQL Server-Anmeldung.

Der Name des Benutzers wird automatisch in den Anmeldenamen umbenannt, wenn es sich bei dem Benutzer um einen Windows-Benutzer handelt, sein Name ein Windows-Name ist (d. h. einen umgekehrten Schrägstrich enthält) oder wenn kein neuer Name angegeben wurde und der aktuelle Name sich von dem Anmeldenamen unterscheidet. Andernfalls wird der Benutzer nicht umbenannt, außer wenn der Aufrufer zusätzlich die NAME-Klausel aufruft.

ms176060.note(de-de,SQL.90).gifHinweis:
Ein Benutzer mit ALTER ANY USER-Berechtigung kann das Standardschema jedes Benutzers ändern. Ein Benutzer mit einem geänderten Schema könnte dann versehentlich Daten aus der falschen Tabelle auswählen oder Code aus dem falschen Schema ausführen.

Der Name eines Benutzers, der einer SQL Server-Anmeldung, einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist, kann keinen umgekehrten Schrägstrich (\) enthalten.

ms176060.Caution(de-de,SQL.90).gifVorsicht:
Das Verhalten der Schemas in SQL Server 2005 unterscheidet sich von dem in früheren Versionen von SQL Server. Code, in dem vorausgesetzt wird, dass Schemas Datenbankbenutzern entsprechen, gibt möglicherweise nicht die richtigen Ergebnisse zurück. Alte Katalogsichten, einschließlich sysobjects, sollten nicht in einer Datenbank verwendet werden, in der jemals 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 einer Datenbank, in der jemals eine dieser Anweisungen verwendet wurde, müssen Sie die neuen Katalogsichten verwenden. In den neuen Katalogsichten wird die Trennung zwischen Prinzipalen und Schemas berücksichtigt, die in SQL Server 2005 eingeführt wird. Weitere Informationen zu Katalogsichten finden Sie unter Katalogsichten (Transact-SQL).

Berechtigungen

Zum Ändern des Namens eines Benutzers ist die ALTER ANY USER-Berechtigung für die Datenbank erforderlich. Zum Ändern des Standardschemas ist die ALTER-Berechtigung für den Benutzer erforderlich. Ein Benutzer kann sein eigenes Standardschema ändern.

Erfordert die CONTROL-Berechtigung in der Datenbank, um einen Benutzer einer Anmeldung neu zuzuordnen.

Beispiele

A. Ändern des Namens eines Datenbankbenutzers

Im folgenden Beispiel wird der Name des Datenbankbenutzers Mary5 in Mary51 geändert.

USE AdventureWorks;
ALTER USER Mary5 WITH NAME = Mary51;
GO 

B. Ändern des Standardschemas eines Benutzers

Im folgenden Beispiel wird das Standardschema des Benutzers Mary51 in Purchasing geändert.

USE AdventureWorks;
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

Siehe auch

Verweis

CREATE USER (Transact-SQL)
DROP USER (Transact-SQL)
EVENTDATA (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005