Freigeben über


ALTER USER (Transact-SQL)

Benennt einen Datenbankbenutzer um oder ändert sein Standardschema.

Transact-SQL-Syntaxkonventionen

Hinweis

Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.

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

* Azure SQL-Datenbank und SQL-Datenbank in Fabric *

 

Azure SQL-Datenbank- und SQL-Datenbank in Microsoft Fabric

Syntax

Syntax für Azure SQL-Datenbank

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

Syntax für SQL-Datenbank in Microsoft Fabric

ALTER USER   
    {  
    Microsoft_Entra_principal FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    }  
 [ ; ]  

-- Users that cannot authenticate   
ALTER USER user_name   
    {  
         { FOR | FROM } CERTIFICATE cert_name   
       | { FOR | FROM } ASYMMETRIC KEY asym_key_name   
    }  
 [ ; ]  

<options_list> ::=  
    DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }   

-- SQL Database syntax when connected to a federation member  
ALTER USER user_name
[;]

Argumente

userName

Gibt den Namen an, mit dem der Benutzer innerhalb dieser Datenbank identifiziert wird.

LOGIN loginName =

Ordnet einem Benutzer einen anderen Anmeldenamen neu zu. Dazu wird die Sicherheits-ID (SID) des Benutzers in die SID des Anmeldenamens 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-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-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 verwaltete Instanz bei der Anwendung auf Benutzer mit Microsoft Entra-Anmeldungen unterstützt: DEFAULT_SCHEMA = { schemaName | NULL } Und DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }

es gibt eine neue Syntaxerweiterung, die hinzugefügt wurde, um Benutzern in einer Datenbank, die zu Azure SQL verwaltete Instanz migriert wurde, neu zuzuordnen. Die ALTER USER-Syntax hilft Datenbankbenutzern in einer Verbund- und synchronisierten Domäne mit Microsoft Entra-ID, microsoft Entra-Anmeldungen zuzuordnen.

-- 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 besteht darin, einen Windows-Benutzer in einen Microsoft Entra-Benutzer zu ändern.

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 Microsoft Entra-Anmeldungen 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 Microsoft Entra-ID verbunden und synchronisiert wurden.

  • Die Überprüfung von Windows-Benutzern oder -Gruppen, die microsoft Entra-ID zugeordnet sind, erfolgt standardmäßig über die Graph-API in allen Versionen der ALTER USER-Syntax, die für migrationszwecke verwendet wird.
  • Lokale Benutzer mit Aliasnamen, d.h. die einen anderen Namen als das ursprüngliche Windows-Konto verwenden, behalten den Aliasnamen bei.
  • Für die Microsoft Entra-Authentifizierung gilt der LOGIN-Parameter nur für Azure SQL verwaltete Instanz und kann nicht mit SQL-Datenbank verwendet werden.
  • Verwenden Sie den folgenden Befehl, um Anmeldeinformationen für Microsoft Entra-Prinzipale anzuzeigen:

select * from sys.server_principals.

  • Überprüfen Sie, ob der angegebene Typ des Anmeldenamens E oder X ist.
  • Kennwortoption kann nicht für Microsoft Entra-Benutzer verwendet werden.
  • In allen Migrationsfällen werden die Rollen und Berechtigungen von Windows-Benutzern oder -Gruppen automatisch auf die neuen Microsoft Entra-Benutzer oder -Gruppen übertragen.
  • Eine neue Syntaxerweiterung, FROM EXTERNAL PROVIDER , ist für die Änderung von Windows-Benutzern und -Gruppen von sql lokal auf Microsoft Entra-Benutzer und -Gruppen verfügbar. Die Windows-Domäne muss mit der Microsoft Entra-ID verbunden sein, und alle Windows-Domänenmitglieder müssen bei Verwendung dieser Erweiterung in der Microsoft Entra-ID vorhanden sein. Die SYNTAX FROM EXTERNAL PROVIDER gilt für Azure SQL verwaltete Instanz und sollte verwendet werden, falls Windows-Benutzer keine Anmeldungen für die ursprüngliche SQL-Instanz haben und den eigenständigen Microsoft Entra-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 BEFEHLS ALTER ersetzt den alten Benutzernamen durch den entsprechenden Namen, der in der Microsoft Entra-ID basierend auf der ursprünglichen SID des alten Benutzernamens gefunden wird. Der geänderte Name wird ersetzt und in den Metadaten der Datenbank gespeichert:
  • (Domäne\Benutzer) wird durch Microsoft Entra user@domain.comersetzt.
  • (domain\MyWidnowsGroup) wird durch die Microsoft Entra-Gruppe ersetzt.
  • (MyWindowsAlias) bleibt unverändert, die SID dieses Benutzers wird jedoch in der Microsoft Entra-ID eingecheckt.

Hinweis

Wenn die SID des ursprünglichen Benutzers, der in objectID konvertiert wurde, in Microsoft Entra ID nicht gefunden werden kann, schlägt der BEFEHL ALTER USER fehl.

  • 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 Microsoft Entra-Benutzern verwendet wird, gelten die folgenden Einschränkungen:
  • Es muss ein gültiger Wert für LOGIN angegeben werden.
  • Der NAME wird in der Microsoft Entra-ID eingecheckt und kann nur wie folgt sein:
  • Name von LOGIN.
  • Ein Alias – der Name kann in der Microsoft Entra-ID nicht 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 einer Microsoft Entra-Anmeldung nach der Migration

Im folgenden Beispiel wird der Benutzer einem westus/joe Microsoft Entra-Benutzer joe@westus.comneu zugeordnet. Dieses Beispiel gilt für Anmeldenamen, die bereits in der verwalteten Instanz vorhanden sind. Dies muss ausgeführt werden, nachdem Sie eine Datenbankmigration zu Azure SQL verwaltete Instanz abgeschlossen haben und die Microsoft Entra-Anmeldung zur Authentifizierung verwenden möchten.

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

E. Zuordnen eines alten Windows-Benutzers in der Datenbank ohne Anmeldung in Azure SQL verwaltete Instanz zu einem Microsoft Entra-Benutzer

Im folgenden Beispiel wird der Benutzer westus/joe ohne Anmeldung einem Microsoft Entra-Benutzer joe@westus.comneu zugeordnet. Der Verbundbenutzer muss in der Microsoft Entra-ID vorhanden sein.

ALTER USER [westus/joe] FROM EXTERNAL PROVIDER

F. Zuordnen des Benutzeralias zu einer vorhandenen Microsoft Entra-Anmeldung

Im folgenden Beispiel wird der Benutzername westus\joe dem Namen joe_alias neu zugeordnet. Die entsprechende Microsoft Entra-Anmeldung in diesem Fall lautet joe@westus.com.

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

G. Zuordnen einer Windows-Gruppe, die in Azure SQL verwaltete Instanz zu einer Microsoft Entra-Gruppe migriert wurde

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

ALTER USER [westus\mygroup] WITH LOGIN = mygroup

Siehe auch

* 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