ALTER USER (Transact-SQL)

Benennt einen Datenbankbenutzer um oder ändert sein Standardschema.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

ALTER USER userName  
     WITH <set_item> [ ,...n ]

<set_item> ::= 
     NAME = newUserName 
     | DEFAULT_SCHEMA = schemaName
     | LOGIN = loginName

Argumente

  • userName
    Gibt den Namen an, durch den der Benutzer in dieser Datenbank identifiziert wird.

  • LOGIN **=**loginName
    Ordnet einen Benutzer einer anderen Anmeldung neu zu. Dazu wird die Sicherheits-ID (SID) des Benutzers in die SID der Anmeldung geändert.

  • NAME **=**newUserName
    Gibt den neuen Namen des Benutzers an. newUserName darf in der aktuellen Datenbank nicht bereits vorhanden sein.

  • DEFAULT_SCHEMA **=**schemaName
    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.

Wichtiger HinweisWichtig

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 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.

Mit der WITH LOGIN-Klausel kann ein Benutzer einer anderen Anmeldung neu zugeordnet werden. Benutzer ohne Anmeldung, einem Zertifikat zugeordnete Benutzer oder einem asymmetrischen Schlüssel zugeordnete Benutzer können mithilfe dieser Klausel nicht neu zugeordnet werden. Nur SQL-Benutzer und Windows-Benutzer (oder -Gruppen) können neu zugeordnet werden. Mit der WITH LOGIN-Klausel kann nicht der Benutzertyp geändert werden, beispielsweise kann ein Windows-Konto nicht in eine SQL Server-Anmeldung geändert werden.

Der Name des Benutzers wird automatisch in den Anmeldenamen umbenannt, wenn die folgenden Voraussetzungen erfüllt sind.

  • Der Benutzer ist ein Windows-Benutzer.

  • Der Name ist ein Windows-Name (enthält einen umgekehrten Schrägstrich).

  • Es wurde kein neuer Name angegeben.

  • Der aktuelle Name unterscheidet sich vom Benutzernamen.

Andernfalls wird der Benutzer nicht umbenannt, es sei denn, der Aufrufer ruft zusätzlich die NAME-Klausel auf.

HinweisHinweis

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.

VorsichtshinweisVorsicht

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

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. Benutzer können nur ihr eigenes Standardschema ändern.

Erfordert die CONTROL-Berechtigung für die Datenbank, um einen Benutzer einer Anmeldung neu zuordnen zu können.

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