ALTER USER (Transact-SQL)

Benennt einen Datenbankbenutzer um oder ändert sein Standardschema.

ThemenlinksymbolTransact-SQL-Syntaxkonventionen

Auswählen eines Produkts

Wählen Sie in der folgenden Zeile den Namen des Produkts aus, an dem Sie interessiert sind. Dann werden nur Informationen zu diesem Produkt angezeigt.

* SQL Server *  

 

SQL Server

Syntax

-- Syntax for SQL Server

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

<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

Argumente

userName: Gibt den Namen an, mit dem der Benutzer innerhalb 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 für diesen Benutzer an. newUserName darf in der aktuellen Datenbank noch nicht vorhanden sein.

DEFAULT_SCHEMA = { schemaName | NULL }: Gibt das erste Schema an, das vom Server beim Auflösen der Namen von Objekten für diesen Benutzer durchsucht wird. Wenn das Standardschema auf NULL festgelegt wird, wird ein Standardschema aus einer Windows-Gruppe entfernt. Die NULL-Option kann nicht in Verbindung mit einem Windows-Benutzer verwendet werden.

PASSWORD = 'password' Gilt für: SQL Server 2012 (11.x) und höher, SQL-Datenbank.

Gibt das Kennwort für den Benutzer an, der geändert wird. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.

Hinweis

Diese Option ist nur für enthaltene Benutzer verfügbar. Weitere Informationen finden Sie unter Eigenständige Datenbanken und sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'Gilt für: SQL Server 2012 (11.x) und höher, SQL-Datenbank.

Das aktuelle Benutzerkennwort, das durch 'password' ersetzt wird. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. OLD_PASSWORD ist für die Änderung eines Kennworts erforderlich, wenn Sie nicht über die ALTER ANY USER-Berechtigung verfügen. Mit OLD_PASSWORD wird verhindert, dass Benutzer mit der IMPERSONATION-Berechtigung das Kennwort ändern.

Hinweis

Diese Option ist nur für enthaltene Benutzer verfügbar.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <Sprachname> | <Sprachalias> }Gilt für: SQL Server 2012 (11.x) und höher.

Gibt eine Standardsprache an, die dem Benutzer zugewiesen werden soll. Wenn diese Option auf NONE festgelegt wird, wird die aktuelle Standardsprache der Datenbank als Standardsprache festgelegt. Wenn die Standardsprache der Datenbank später geändert wird, bleibt die Standardsprache des Benutzers unverändert. DEFAULT_LANGUAGE kann die lokale ID (lcid), der Name der Sprache oder der Sprachalias sein.

Hinweis

Diese Option kann nur in einer eigenständigen Datenbank und nur für eigenständige Benutzer angegeben werden.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] Gilt für: SQL Server 2016 (13.x) und höher, SQL-Datenbank.

Verhindert bei Massenkopiervorgängen kryptografische Metadatenüberprüfungen auf dem Server. Dadurch kann der Benutzer durch Massenkopiervorgänge Daten zwischen Tabellen oder Datenbanken austauschen, ohne dabei die Daten zu verschlüsseln. Der Standardwert ist OFF.

Warnung

Die falsche Verwendung dieser Option kann zur Datenbeschädigung führen. Weitere Informationen finden Sie unter Migrieren von durch Always Encrypted geschützten sensiblen Daten.

Bemerkungen

Das Standardschema ist das erste Schema, das vom Server beim Auflösen der Namen von Objekten für diesen Datenbankbenutzer durchsucht wird. Wenn nicht anders angegeben, ist das Standardschema der Besitzer von Objekten, die von diesem Datenbankbenutzer erstellt werden.

Wenn der Benutzer ein Standardschema hat, wird dieses Standardschema verwendet. Wenn der Benutzer kein Standardschema hat, aber Mitglied einer Gruppe mit einem Standardschema ist, wird das Standardschema der Gruppe verwendet. Wenn der Benutzer kein Standardschema hat und Mitglied von mehreren Gruppen ist, ist das Standardschema für den Benutzer das Schema der Windows-Gruppe mit der niedrigsten principal_id und explizit festgelegt. Wenn für einen Benutzer kein Standardschema bestimmt werden kann, wird das Schema dbo verwendet.

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 einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist.

Wichtig

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 ein dbo-Standardschema .

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

Zu einer nicht übereinstimmenden SID kann es kommen, wenn Sie eine Datenbank von einem anderen Server wiederhergestellt und einen Datenbankbenutzer einem SQL Server-Anmeldenamen zugeordnet haben. Sie können diese Situation mithilfe der WITH LOGIN-Klausel korrigieren, indem Sie die Benutzer-SID in der Datenbank durch die Anmelde-SID vom Server ersetzen.

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.

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

Achtung

Ab SQL Server 2005 hat sich das Verhalten der Schemas geändert. Daher gibt Code, der voraussetzt, dass Schemas mit Datenbankbenutzern identisch sind, nunmehr keine richtigen Ergebnisse mehr 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 derlei Datenbanken müssen Sie stattdessen die neuen Katalogansichten 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).

Sicherheit

Hinweis

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.

Berechtigungen

Zum Ändern des Namens eines Benutzers ist die ALTER ANY USER-Berechtigung erforderlich.

Um die Zielanmeldung eines Benutzers zu ändern, wird die CONTROL-Berechtigung für die Datenbank benötigt.

Um den Benutzernamen eines Benutzers zu ändern, der über die CONTROL-Berechtigung für die Datenbank verfügt, ist die CONTROL-Berechtigung für die Datenbank erforderlich.

Zum Ändern des Standardschemas oder der Sprache ist die ALTER-Berechtigung für den Benutzer erforderlich. Benutzer können ihr eigenes Standardschema oder ihre eigene Sprache ändern.

Beispiele

Alle Beispiele werden in einer Benutzerdatenbank ausgeführt.

A. Ändern des Namens eines Datenbankbenutzers

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

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.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Gleichzeitiges Ändern mehrerer Optionen

Im folgenden Beispiel werden mehrere Optionen für einen Benutzer einer eigenständigen Datenbank in einer Anweisung geändert.

Gilt für: SQL Server 2012 (11.x) und höher.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, DEFAULT_LANGUAGE= French ;
GO

D: Korrigieren einer nicht übereinstimmenden SID

Im folgenden Beispiel wird die Benutzer-SID in der Datenbank so korrigiert, dass sie mit der SID auf dem Server für eine authentifizierte SQL Server-Anmeldung übereinstimmt.

ALTER USER Mai
WITH LOGIN = Mai;
GO

Weitere Informationen

* SQL-Datenbank *

 

SQL-Datenbank

Syntax

-- Syntax for Azure SQL Database

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

<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = schemaName
| LOGIN = loginName
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]

-- Azure SQL Database Update Syntax
ALTER USER userName
 WITH <set_item> [ ,...n ]
[;]

<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

-- SQL Database syntax when connected to a federation member
ALTER USER userName
 WITH <set_item> [ ,... n ]
[;]

<set_item> ::=
 NAME = newUserName

Argumente

userName: Gibt den Namen an, mit dem der Benutzer innerhalb 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.

Wenn ALTER USER die einzige Anweisung in einem SQL-Batch ist, unterstützt Azure SQL-Datenbank die WITH LOGIN-Klausel. Wenn ALTER USER nicht die einzige Anweisung in einem SQL-Batch ist oder in dynamischem SQL-Code ausgeführt wird, wird die WITH LOGIN-Klausel nicht unterstützt.

NAME =newUserName: Gibt den neuen Namen für diesen Benutzer an. newUserName darf in der aktuellen Datenbank noch nicht vorhanden sein.

DEFAULT_SCHEMA = { schemaName | NULL }: Gibt das erste Schema an, das vom Server beim Auflösen der Namen von Objekten für diesen Benutzer durchsucht wird. Wenn das Standardschema auf NULL festgelegt wird, wird ein Standardschema aus einer Windows-Gruppe entfernt. Die NULL-Option kann nicht in Verbindung mit einem Windows-Benutzer verwendet werden.

PASSWORD = 'password' Gilt für: SQL Server 2012 (11.x) und höher, SQL-Datenbank.

Gibt das Kennwort für den Benutzer an, der geändert wird. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.

Hinweis

Diese Option ist nur für enthaltene Benutzer verfügbar. Weitere Informationen finden Sie unter Eigenständige Datenbanken und sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'Gilt für: SQL Server 2012 (11.x) und höher, SQL-Datenbank.

Das aktuelle Benutzerkennwort, das durch 'password' ersetzt wird. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. OLD_PASSWORD ist für die Änderung eines Kennworts erforderlich, wenn Sie nicht über die ALTER ANY USER-Berechtigung verfügen. Mit OLD_PASSWORD wird verhindert, dass Benutzer mit der IMPERSONATION-Berechtigung das Kennwort ändern.

Hinweis

Diese Option ist nur für enthaltene Benutzer verfügbar.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] Gilt für: SQL Server 2016 (13.x) und höher, SQL-Datenbank.

Verhindert bei Massenkopiervorgängen kryptografische Metadatenüberprüfungen auf dem Server. Dadurch kann der Benutzer durch Massenkopiervorgänge Daten zwischen Tabellen oder Datenbanken austauschen, ohne dabei die Daten zu verschlüsseln. Der Standardwert ist OFF.

Warnung

Die falsche Verwendung dieser Option kann zur Datenbeschädigung führen. Weitere Informationen finden Sie unter Migrieren von durch Always Encrypted geschützten sensiblen Daten.

Bemerkungen

Das Standardschema ist das erste Schema, das vom Server beim Auflösen der Namen von Objekten für diesen Datenbankbenutzer durchsucht wird. Wenn nicht anders angegeben, ist das Standardschema der Besitzer von Objekten, die von diesem Datenbankbenutzer erstellt werden.

Wenn der Benutzer ein Standardschema hat, wird dieses Standardschema verwendet. Wenn der Benutzer kein Standardschema hat, aber Mitglied einer Gruppe mit einem Standardschema ist, wird das Standardschema der Gruppe verwendet. Wenn der Benutzer kein Standardschema hat und Mitglied von mehreren Gruppen ist, ist das Standardschema für den Benutzer das Schema der Windows-Gruppe mit der niedrigsten principal_id und explizit festgelegt. Wenn für einen Benutzer kein Standardschema bestimmt werden kann, wird das Schema dbo verwendet.

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 einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist.

Wichtig

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 ein dbo-Standardschema .

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

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

Achtung

Ab SQL Server 2005 hat sich das Verhalten der Schemas geändert. Daher gibt Code, der voraussetzt, dass Schemas mit Datenbankbenutzern identisch sind, nunmehr keine richtigen Ergebnisse mehr 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 derlei Datenbanken müssen Sie stattdessen die neuen Katalogansichten 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).

Sicherheit

Hinweis

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.

Berechtigungen

Zum Ändern des Namens eines Benutzers ist die ALTER ANY USER-Berechtigung erforderlich.

Um die Zielanmeldung eines Benutzers zu ändern, wird die CONTROL-Berechtigung für die Datenbank benötigt.

Um den Benutzernamen eines Benutzers zu ändern, der über die CONTROL-Berechtigung für die Datenbank verfügt, ist die CONTROL-Berechtigung für die Datenbank erforderlich.

Zum Ändern des Standardschemas oder der Sprache ist die ALTER-Berechtigung für den Benutzer erforderlich. Benutzer können ihr eigenes Standardschema oder ihre eigene Sprache ändern.

Beispiele

Alle Beispiele werden in einer Benutzerdatenbank ausgeführt.

A. Ändern des Namens eines Datenbankbenutzers

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

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.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Gleichzeitiges Ändern mehrerer Optionen

Im folgenden Beispiel werden mehrere Optionen für einen Benutzer einer eigenständigen Datenbank in einer Anweisung geändert.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per';
GO

Weitere Informationen

* SQL Managed Instance *

 

Verwaltete Azure SQL-Instanz

Syntax

Wichtig

Nur die folgenden Optionen werden für Azure SQL Managed Instance unterstützt, wenn sie für Benutzer*innen mit Azure AD-Anmeldeinformationen angewandt werden: DEFAULT_SCHEMA = { schemaName | NULL } und DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }

Es gibt eine neue Syntaxerweiterung, die hinzugefügt wurde, um Benutzer*innen in einer Datenbank neu zuzuordnen, die zu Azure SQL Managed Instance migriert wurde. Mit der ALTER USER-Syntax können Datenbankbenutzern in einer im Verbund konfigurierten und synchronisierten Azure AD-Domäne Azure AD-Anmeldenamen zugeordnet werden.

-- Syntax for SQL Managed Instance
ALTER USER userName
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

-- Users or groups that are migrated as federated and synchronized with Azure AD have the following syntax:

/** Applies to Windows users that were migrated and have the following user names:
- Windows user <domain\user>
- Windows group <domain\MyWindowsGroup>
- Windows alias <MyWindowsAlias>
**/

ALTER USER userName
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
 NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }

Argumente

userName: Gibt den Namen an, mit dem der Benutzer innerhalb 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.

Wenn ALTER USER die einzige Anweisung in einem SQL-Batch ist, unterstützt Azure SQL-Datenbank die WITH LOGIN-Klausel. Wenn ALTER USER nicht die einzige Anweisung in einem SQL-Batch ist oder in dynamischem SQL-Code ausgeführt wird, wird die WITH LOGIN-Klausel nicht unterstützt.

NAME =newUserName: Gibt den neuen Namen für diesen Benutzer an. newUserName darf in der aktuellen Datenbank noch nicht vorhanden sein.

DEFAULT_SCHEMA = { schemaName | NULL }: Gibt das erste Schema an, das vom Server beim Auflösen der Namen von Objekten für diesen Benutzer durchsucht wird. Wenn das Standardschema auf NULL festgelegt wird, wird ein Standardschema aus einer Windows-Gruppe entfernt. Die NULL-Option kann nicht in Verbindung mit einem Windows-Benutzer verwendet werden.

PASSWORD = 'password'

Gibt das Kennwort für den Benutzer an, der geändert wird. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.

Hinweis

Diese Option ist nur für enthaltene Benutzer verfügbar. Weitere Informationen finden Sie unter Eigenständige Datenbanken und sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'

Das aktuelle Benutzerkennwort, das durch 'password' ersetzt wird. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. OLD_PASSWORD ist für die Änderung eines Kennworts erforderlich, wenn Sie nicht über die ALTER ANY USER-Berechtigung verfügen. Mit OLD_PASSWORD wird verhindert, dass Benutzer mit der IMPERSONATION-Berechtigung das Kennwort ändern.

Hinweis

Diese Option ist nur für enthaltene Benutzer verfügbar.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <Sprachname> | <Sprachalias> }

Gibt eine Standardsprache an, die dem Benutzer zugewiesen werden soll. Wenn diese Option auf NONE festgelegt wird, wird die aktuelle Standardsprache der Datenbank als Standardsprache festgelegt. Wenn die Standardsprache der Datenbank später geändert wird, bleibt die Standardsprache des Benutzers unverändert. DEFAULT_LANGUAGE kann die lokale ID (lcid), der Name der Sprache oder der Sprachalias sein.

Hinweis

Diese Option kann nur in einer eigenständigen Datenbank und nur für eigenständige Benutzer angegeben werden.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ON | OFF]

Verhindert bei Massenkopiervorgängen kryptografische Metadatenüberprüfungen auf dem Server. Dadurch kann der Benutzer durch Massenkopiervorgänge Daten zwischen Tabellen oder Datenbanken austauschen, ohne dabei die Daten zu verschlüsseln. Der Standardwert ist OFF.

Warnung

Die falsche Verwendung dieser Option kann zur Datenbeschädigung führen. Weitere Informationen finden Sie unter Migrieren von durch Always Encrypted geschützten sensiblen Daten.

Bemerkungen

Das Standardschema ist das erste Schema, das vom Server beim Auflösen der Namen von Objekten für diesen Datenbankbenutzer durchsucht wird. Wenn nicht anders angegeben, ist das Standardschema der Besitzer von Objekten, die von diesem Datenbankbenutzer erstellt werden.

Wenn der Benutzer ein Standardschema hat, wird dieses Standardschema verwendet. Wenn der Benutzer kein Standardschema hat, aber Mitglied einer Gruppe mit einem Standardschema ist, wird das Standardschema der Gruppe verwendet. Wenn der Benutzer kein Standardschema hat und Mitglied von mehreren Gruppen ist, ist das Standardschema für den Benutzer das Schema der Windows-Gruppe mit der niedrigsten principal_id und explizit festgelegt. Wenn für einen Benutzer kein Standardschema bestimmt werden kann, wird das Schema dbo verwendet.

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 einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist.

Wichtig

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 ein dbo-Standardschema .

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 Anmeldenamen, 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. Die einzige Ausnahme ist das Umwandeln eines Windows-Benutzers in einen Azure AD-Benutzer.

Hinweis

Die folgenden Regeln gelten nicht für Windows-Benutzer von Azure SQL Managed Instance, da das Erstellen von Windows-Konten für Azure SQL Managed Instance nicht unterstützt wird. Die WITH LOGIN-Option kann nur verwendet werden, wenn Azure AD-Anmeldenamen vorhanden sind.

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.

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

Achtung

Ab SQL Server 2005 hat sich das Verhalten der Schemas geändert. Daher gibt Code, der voraussetzt, dass Schemas mit Datenbankbenutzern identisch sind, nunmehr keine richtigen Ergebnisse mehr 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 derlei Datenbanken müssen Sie stattdessen die neuen Katalogansichten 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).

Hinweise für Windows-Benutzer in lokalen SQL-Instanzen nach einer Migration zu Azure SQL Managed Instance

Diese Hinweise gelten für die Authentifizierung als Windows-Benutzer, die mit Azure AD im Verbund konfiguriert und synchronisiert wurden.

Hinweis

Der Azure AD-Administrator für Azure SQL Managed Instance-Funktionen ändert sich nach der Erstellung. Weitere Informationen finden Sie unter Neue Azure AD-Administratorfunktionen für verwaltete Instanzen.

  • Die Validierung von Windows-Benutzern oder -Gruppen, die Azure AD zugeordnet sind, erfolgt standardmäßig über die Graph-API in allen Versionen der für Migrationszwecke verwendeten ALTER USER-Syntax.
  • Lokale Benutzer mit Aliasnamen, d.h. die einen anderen Namen als das ursprüngliche Windows-Konto verwenden, behalten den Aliasnamen bei.
  • Bei der Azure AD-Authentifizierung gilt der LOGIN-Parameter nur für Azure SQL Managed Instance und kann nicht mit SQL-Datenbank verwendet werden.
  • Verwenden Sie zum Anzeigen von Anmeldenamen für Azure AD-Prinzipale den folgenden Befehl: select * from sys.server_principals.
  • Überprüfen Sie, ob der angegebene Typ des Anmeldenamens E oder X ist.
  • Die PASSWORD-Option kann nicht für Azure AD-Benutzer verwendet werden.
  • In allen Migrationsfällen werden die Rollen und Berechtigungen von Windows-Benutzern oder -Gruppen automatisch an die neuen Azure AD-Benutzer oder -Gruppen übertragen.
  • Eine neue Syntaxerweiterung (FROM EXTERNAL PROVIDER) steht zur Verfügung, um Windows-Benutzer und -Gruppen aus lokalen SQL-Instanzen in Azure AD-Benutzer und -Gruppen zu ändern. Die Windows-Domäne muss im Verbund mit Azure AD konfiguriert sein, und alle Windows-Domänenmitglieder müssen bei der Verwendung dieser Erweiterung in Azure AD vorhanden sein. Die FROM EXTERNAL PROVIDER-Syntax gilt für Azure SQL Managed Instance und sollte verwendet werden, wenn Windows-Benutzer keine Konten für die ursprüngliche SQL-Instanz besitzen und eigenständigen Azure AD-Datenbankbenutzern zugeordnet werden müssen.
  • In diesem Fall kann der zulässige Benutzername wie folgt lauten:
  • Ein Widows-Benutzer (Domäne\Benutzer).
  • Eine Windows-Gruppe (MeineWindows-Gruppe).
  • Ein Windows-Alias (MeinWindows-Alias).
  • Das Ergebnis des ALTER-Befehls ersetzt den alten Benutzernamen durch den entsprechenden Namen, der in Azure AD basierend auf der ursprünglichen SID des alten Benutzernamens gefunden wurde. Der geänderte Name wird ersetzt und in den Metadaten der Datenbank gespeichert:
  • (Domäne\Benutzer) wird durch „Azure AD user@domain.com„ ersetzt.
  • (Domäne\MeineWindowsGruppe) wird durch die Azure AD-Gruppe ersetzt.
  • (MeinWindows-Alias) bleibt unverändert, aber die SID dieses Benutzers wird in Azure AD geprüft.

Hinweis

Wenn die in objectID konvertierte SID des ursprünglichen Benutzers in Azure AD nicht gefunden werden kann, tritt beim ALTER USER-Befehl ein Fehler auf.

  • Verwenden Sie zum Anzeigen der geänderten Benutzer den folgenden Befehl: select * from sys.database_principals
  • Überprüfen Sie, ob der angegebene Typ des Benutzers E oder X ist.
  • Wenn NAME zum Migrieren von Windows-Benutzern zu Azure AD-Benutzern verwendet wird, gelten die folgenden Einschränkungen:
  • Es muss ein gültiger Wert für LOGIN angegeben werden.
  • NAME wird in Azure AD überprüft und kann nur folgenden Wert enthalten:
  • Name von LOGIN.
  • Alias: Der Name darf nicht in Azure AD vorhanden sein.
  • In allen anderen Fällen schlägt die Syntax fehl.

Sicherheit

Hinweis

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.

Berechtigungen

Zum Ändern des Namens eines Benutzers ist die ALTER ANY USER-Berechtigung erforderlich.

Um die Zielanmeldung eines Benutzers zu ändern, wird die CONTROL-Berechtigung für die Datenbank benötigt.

Um den Benutzernamen eines Benutzers zu ändern, der über die CONTROL-Berechtigung für die Datenbank verfügt, ist die CONTROL-Berechtigung für die Datenbank erforderlich.

Zum Ändern des Standardschemas oder der Sprache ist die ALTER-Berechtigung für den Benutzer erforderlich. Benutzer können ihr eigenes Standardschema oder ihre eigene Sprache ändern.

Beispiele

Alle Beispiele werden in einer Benutzerdatenbank ausgeführt.

A. Ändern des Namens eines Datenbankbenutzers

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

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.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Gleichzeitiges Ändern mehrerer Optionen

Im folgenden Beispiel werden mehrere Optionen für einen Benutzer einer eigenständigen Datenbank in einer Anweisung geändert.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, DEFAULT_LANGUAGE= French ;
GO

D: Zuordnen des Benutzers in der Datenbank zu einem Azure AD-Anmeldenamen nach der Migration

Im folgenden Beispiel wird der Benutzer westus/joe einem Azure AD-Benutzer joe@westus.com neu zugeordnet. Dieses Beispiel gilt für Anmeldenamen, die bereits in der verwalteten Instanz vorhanden sind. Dies muss durchgeführt werden, nachdem Sie eine Datenbankmigration zu Azure SQL Managed Instance abgeschlossen haben und wenn Sie die Azure AD-Anmeldung für die Authentifizierung verwenden möchten.

ALTER USER [westus/joe] WITH LOGIN = joe@westus.com

E. Zuordnen eines alten Windows-Benutzers in der Datenbank ohne eine Anmeldung zu einem Azure AD-Benutzer in Azure SQL Managed Instance

Im folgenden Beispiel wird der Benutzer westus/joe ohne Anmeldename einem Azure AD-Benutzer joe@westus.com neu zugeordnet. Der Verbundbenutzer muss in Azure AD vorhanden sein.

ALTER USER [westus/joe] FROM EXTERNAL PROVIDER

F. Zuordnen des Benutzeralias zu einem vorhandenen Azure AD-Anmeldenamen

Im folgenden Beispiel wird der Benutzername westus\joe dem Namen joe_alias neu zugeordnet. Der entsprechende Azure AD-Anmeldename in diesem Fall lautet joe@westus.com.

ALTER USER [westus/joe] WITH LOGIN = joe@westus.com, name= joe_alias

G. Zuordnen einer Windows-Gruppe zu einer Azure AD-Gruppe nach einer Migration zu Azure SQL Managed Instance

Im folgenden Beispiel wird die alte lokale Gruppe westus\mygroup einer Azure AD-Gruppe mygroup in der verwalteten Instanz neu zugeordnet. Die Gruppe muss in Azure AD vorhanden sein.

ALTER USER [westus\mygroup] WITH LOGIN = mygroup

Weitere Informationen

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Syntax

-- Syntax for Azure Synapse

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

<set_item> ::=
 NAME = newUserName
 | LOGIN = loginName
 | DEFAULT_SCHEMA = schema_name
[;]

Argumente

userName: Gibt den Namen an, mit dem der Benutzer innerhalb 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.

Wenn ALTER USER die einzige Anweisung in einem SQL-Batch ist, unterstützt Azure SQL-Datenbank die WITH LOGIN-Klausel. Wenn ALTER USER nicht die einzige Anweisung in einem SQL-Batch ist oder in dynamischem SQL-Code ausgeführt wird, wird die WITH LOGIN-Klausel nicht unterstützt.

NAME =newUserName: Gibt den neuen Namen für diesen Benutzer an. newUserName darf in der aktuellen Datenbank noch nicht vorhanden sein.

DEFAULT_SCHEMA = { schemaName | NULL }: Gibt das erste Schema an, das vom Server beim Auflösen der Namen von Objekten für diesen Benutzer durchsucht wird. Wenn das Standardschema auf NULL festgelegt wird, wird ein Standardschema aus einer Windows-Gruppe entfernt. Die NULL-Option kann nicht in Verbindung mit einem Windows-Benutzer verwendet werden.

Bemerkungen

Das Standardschema ist das erste Schema, das vom Server beim Auflösen der Namen von Objekten für diesen Datenbankbenutzer durchsucht wird. Wenn nicht anders angegeben, ist das Standardschema der Besitzer von Objekten, die von diesem Datenbankbenutzer erstellt werden.

Wenn der Benutzer ein Standardschema hat, wird dieses Standardschema verwendet. Wenn der Benutzer kein Standardschema hat, aber Mitglied einer Gruppe mit einem Standardschema ist, wird das Standardschema der Gruppe verwendet. Wenn der Benutzer kein Standardschema hat und Mitglied von mehreren Gruppen ist, ist das Standardschema für den Benutzer das Schema der Windows-Gruppe mit der niedrigsten principal_id und explizit festgelegt. Wenn für einen Benutzer kein Standardschema bestimmt werden kann, wird das Schema dbo verwendet.

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 einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist.

Wichtig

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 ein dbo-Standardschema .

Mit der WITH LOGIN-Klausel kann ein Benutzer einer anderen Anmeldung neu zugeordnet werden. Benutzer ohne Anmeldenamen, 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.

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

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

Achtung

Ab SQL Server 2005 hat sich das Verhalten der Schemas geändert. Daher gibt Code, der voraussetzt, dass Schemas mit Datenbankbenutzern identisch sind, nunmehr keine richtigen Ergebnisse mehr 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 derlei Datenbanken müssen Sie stattdessen die neuen Katalogansichten 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).

Sicherheit

Hinweis

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.

Berechtigungen

Zum Ändern des Namens eines Benutzers ist die ALTER ANY USER-Berechtigung erforderlich.

Um die Zielanmeldung eines Benutzers zu ändern, wird die CONTROL-Berechtigung für die Datenbank benötigt.

Um den Benutzernamen eines Benutzers zu ändern, der über die CONTROL-Berechtigung für die Datenbank verfügt, ist die CONTROL-Berechtigung für die Datenbank erforderlich.

Zum Ändern des Standardschemas oder der Sprache ist die ALTER-Berechtigung für den Benutzer erforderlich. Benutzer können ihr eigenes Standardschema oder ihre eigene Sprache ändern.

Beispiele

Alle Beispiele werden in einer Benutzerdatenbank ausgeführt.

A. Ändern des Namens eines Datenbankbenutzers

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

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.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

Weitere Informationen

* Analytics
Platform System (PDW) *

 

Analyseplattformsystem

Syntax

-- Syntax for Analytics Platform System

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

<set_item> ::=
 NAME = newUserName
 | LOGIN = loginName
 | DEFAULT_SCHEMA = schema_name
[;]

Argumente

userName: Gibt den Namen an, mit dem der Benutzer innerhalb 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.

Wenn ALTER USER die einzige Anweisung in einem SQL-Batch ist, unterstützt Azure SQL-Datenbank die WITH LOGIN-Klausel. Wenn ALTER USER nicht die einzige Anweisung in einem SQL-Batch ist oder in dynamischem SQL-Code ausgeführt wird, wird die WITH LOGIN-Klausel nicht unterstützt.

NAME =newUserName: Gibt den neuen Namen für diesen Benutzer an. newUserName darf in der aktuellen Datenbank noch nicht vorhanden sein.

DEFAULT_SCHEMA = { schemaName | NULL }: Gibt das erste Schema an, das vom Server beim Auflösen der Namen von Objekten für diesen Benutzer durchsucht wird. Wenn das Standardschema auf NULL festgelegt wird, wird ein Standardschema aus einer Windows-Gruppe entfernt. Die NULL-Option kann nicht in Verbindung mit einem Windows-Benutzer verwendet werden.

Bemerkungen

Das Standardschema ist das erste Schema, das vom Server beim Auflösen der Namen von Objekten für diesen Datenbankbenutzer durchsucht wird. Wenn nicht anders angegeben, ist das Standardschema der Besitzer von Objekten, die von diesem Datenbankbenutzer erstellt werden.

Wenn der Benutzer ein Standardschema hat, wird dieses Standardschema verwendet. Wenn der Benutzer kein Standardschema hat, aber Mitglied einer Gruppe mit einem Standardschema ist, wird das Standardschema der Gruppe verwendet. Wenn der Benutzer kein Standardschema hat und Mitglied von mehreren Gruppen ist, ist das Standardschema für den Benutzer das Schema der Windows-Gruppe mit der niedrigsten principal_id und explizit festgelegt. Wenn für einen Benutzer kein Standardschema bestimmt werden kann, wird das Schema dbo verwendet.

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 einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist.

Wichtig

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 ein dbo-Standardschema .

Mit der WITH LOGIN-Klausel kann ein Benutzer einer anderen Anmeldung neu zugeordnet werden. Benutzer ohne Anmeldenamen, 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.

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

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

Achtung

Ab SQL Server 2005 hat sich das Verhalten der Schemas geändert. Daher gibt Code, der voraussetzt, dass Schemas mit Datenbankbenutzern identisch sind, nunmehr keine richtigen Ergebnisse mehr 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 derlei Datenbanken müssen Sie stattdessen die neuen Katalogansichten 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).

Sicherheit

Hinweis

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.

Berechtigungen

Zum Ändern des Namens eines Benutzers ist die ALTER ANY USER-Berechtigung erforderlich.

Um die Zielanmeldung eines Benutzers zu ändern, wird die CONTROL-Berechtigung für die Datenbank benötigt.

Um den Benutzernamen eines Benutzers zu ändern, der über die CONTROL-Berechtigung für die Datenbank verfügt, ist die CONTROL-Berechtigung für die Datenbank erforderlich.

Zum Ändern des Standardschemas oder der Sprache ist die ALTER-Berechtigung für den Benutzer erforderlich. Benutzer können ihr eigenes Standardschema oder ihre eigene Sprache ändern.

Beispiele

Alle Beispiele werden in einer Benutzerdatenbank ausgeführt.

A. Ändern des Namens eines Datenbankbenutzers

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

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.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

Weitere Informationen