ALTER USER (Transact-SQL)ALTER USER (Transact-SQL)

DIESES THEMA GILT FÜR: jaSQL Server (ab 2008)jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Benennt einen Datenbankbenutzer um oder ändert sein Standardschema.Renames a database user or changes its default schema.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

-- 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 ]  
-- 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 for Azure SQL Data Warehouse and Parallel Data Warehouse  

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

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

ArgumenteArguments

BenutzernameuserName
Gibt den Namen an, mit dem der Benutzer innerhalb dieser Datenbank identifiziert wird.Specifies the name by which the user is identified inside this database.

Anmeldung = LoginNameLOGIN =loginName
Ordnet einen Benutzer einer anderen Anmeldung neu zu. Dazu wird die Sicherheits-ID (SID) des Benutzers in die SID der Anmeldung geändert.Re-maps a user to another login by changing the user's Security Identifier (SID) to match the login's SID.

Wenn ALTER USER die einzige Anweisung in einem SQL-Batch ist, unterstützt Windows Azure SQL-Datenbank die WITH LOGIN-Klausel.If the ALTER USER statement is the only statement in a SQL batch, Windows Azure SQL Database supports the WITH LOGIN clause. 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.If the ALTER USER statement is not the only statement in a SQL batch or is executed in dynamic SQL, the WITH LOGIN clause is not supported.

Namen = neuer BenutzernameNAME =newUserName
Gibt den neuen Namen für diesen Benutzer an.Specifies the new name for this user. Neuer Benutzername muss nicht in der aktuellen Datenbank bereits vorhanden sein.newUserName must not already occur in the current database.

DEFAULT_SCHEMA = { SchemaName | NULL}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.Specifies the first schema that will be searched by the server when it resolves the names of objects for this user. Wenn das Standardschema auf NULL festgelegt wird, wird ein Standardschema aus einer Windows-Gruppe entfernt.Setting the default schema to NULL removes a default schema from a Windows group. Die NULL-Option kann nicht in Verbindung mit einem Windows-Benutzer verwendet werden.The NULL option cannot be used with a Windows user.

Kennwort = "Kennwort"PASSWORD = 'password'
Gilt für: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017, SQL-DatenbankSQL Database.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017, SQL-DatenbankSQL Database.

Gibt das Kennwort für den Benutzer an, der geändert wird.Specifies the password for the user that is being changed. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.Passwords are case-sensitive.

Hinweis

Diese Option ist nur für enthaltene Benutzer verfügbar.This option is available only for contained users. Finden Sie unter Contained Databases und Sp_migrate_user_to_contained ( Transact-SQL ) für Weitere Informationen.See Contained Databases and sp_migrate_user_to_contained (Transact-SQL) for more information.

OLD_PASSWORD = "Oldpassword"OLD_PASSWORD ='oldpassword'
Gilt für: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017, SQL-DatenbankSQL Database.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017, SQL-DatenbankSQL Database.

Das aktuelle Benutzerkennwort, das von zu ersetzenden "Kennwort".The current user password that will be replaced by 'password'. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.Passwords are case-sensitive. OLD_PASSWORD so ändern Sie ein Kennwort erforderlich, es sei denn, Sie haben ALTER ANY USER Berechtigung.OLD_PASSWORD is required to change a password, unless you have ALTER ANY USER permission. Erfordern OLD_PASSWORD verhindert, dass Benutzer mit IDENTITÄTSWECHSEL Berechtigung Ändern des Kennworts.Requiring OLD_PASSWORD prevents users with IMPERSONATION permission from changing the password.

Hinweis

Diese Option ist nur für enthaltene Benutzer verfügbar.This option is available only for contained users.

DEFAULT_LANGUAGE = {NONE | <Lcid > | <Sprachenname > | <Sprachenalias >}DEFAULT_LANGUAGE ={ NONE | <lcid> | <language name> | <language alias> }
Gilt für: SQL Server 2012SQL Server 2012 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

Gibt eine Standardsprache an, die dem Benutzer zugewiesen werden soll.Specifies a default language to be assigned to the user. Wenn diese Option auf NONE festgelegt wird, wird die aktuelle Standardsprache der Datenbank als Standardsprache festgelegt.If this option is set to NONE, the default language is set to the current default language of the database. Wenn die Standardsprache der Datenbank später geändert wird, bleibt die Standardsprache des Benutzers unverändert.If the default language of the database is later changed, the default language of the user will remain unchanged. DEFAULT_LANGUAGE kann die lokale ID (Lcid), den Namen der Sprache oder der sprachalias sein.DEFAULT_LANGUAGE can be the local ID (lcid), the name of the language, or the language alias.

Hinweis

Diese Option kann nur in einer eigenständigen Datenbank und nur für eigenständige Benutzer angegeben werden.This option may only be specified in a contained database and only for contained users.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ON | OFF ]]ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]
Gilt für: SQL Server 2016SQL Server 2016 über SQL Server 2017SQL Server 2017, SQL-DatenbankSQL Database.Applies to: SQL Server 2016SQL Server 2016 through SQL Server 2017SQL Server 2017, SQL-DatenbankSQL Database.

Unterdrückt kryptografische metadatenüberprüfungen auf dem Server bei Massenkopiervorgängen.Suppresses cryptographic metadata checks on the server in bulk copy operations. Dadurch kann der Benutzer verschlüsselte Daten zwischen Tabellen oder Datenbanken, ohne die Daten zu entschlüsseln.This enables the user to bulk copy encrypted data between tables or databases, without decrypting the data. Der Standardwert ist OFF.The default is OFF.

Warnung

Die falsche Verwendung dieser Option kann zur Datenbeschädigung führen.Improper use of this option can lead to data corruption. Weitere Informationen finden Sie unter migrieren geschützten sensiblen Daten durch Always Encrypted.For more information, see Migrate Sensitive Data Protected by Always Encrypted.

HinweiseRemarks

Das Standardschema ist das erste Schema, das vom Server beim Auflösen der Namen von Objekten für diesen Datenbankbenutzer durchsucht wird.The default schema will be the first schema that will be searched by the server when it resolves the names of objects for this database user. Wenn nicht anders angegeben, ist das Standardschema der Besitzer von Objekten, die von diesem Datenbankbenutzer erstellt werden.Unless otherwise specified, the default schema will be the owner of objects created by this database user.

Wenn der Benutzer ein Standardschema hat, wird dieses Standardschema verwendet.If the user has a default schema, that default schema will used. Wenn der Benutzer kein Standardschema hat, aber Mitglied einer Gruppe mit einem Standardschema ist, wird das Standardschema der Gruppe verwendet.If the user does not have a default schema, but the user is a member of a group that has a default schema, the default schema of the group will be used. 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.If the user does not have a default schema, and is a member of more than one group, the default schema for the user will be that of the Windows group with the lowest principal_id and an explicitly set default schema. Wenn für einen Benutzer kein Standardschema bestimmt werden kann die Dbo Schema verwendet werden.If no default schema can be determined for a user, the dbo schema will be used.

DEFAULT_SCHEMA kann auf ein Schema festgelegt werden, das zurzeit nicht in der Datenbank vorhanden ist.DEFAULT_SCHEMA can be set to a schema that does not currently occur in the database. Deshalb können Sie DEFAULT_SCHEMA einem Benutzer zuweisen, bevor das Schema erstellt wird.Therefore, you can assign a DEFAULT_SCHEMA to a user before that schema is created.

DEFAULT_SCHEMA kann nicht für einen Benutzer angegeben werden, der einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist.DEFAULT_SCHEMA cannot be specified for a user who is mapped to a certificate, or an asymmetric key.

Wichtig

Der Wert von DEFAULT_SCHEMA wird ignoriert, wenn der Benutzer Mitglied ist die Sysadmin festen Serverrolle "".The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin fixed server role. Alle Mitglieder der Sysadmin -Serverrolle verfügen über das Standardschema des dbo.All members of the sysadmin fixed server role have a default schema of 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.You can change the name of a user who is mapped to a Windows login or group only when the SID of the new user name matches the SID that is recorded in the database. Diese Überprüfung trägt dazu bei, das Spoofing von Windows-Anmeldungen in der Datenbank zu verhindern.This check helps prevent spoofing of Windows logins in the database.

Mit der WITH LOGIN-Klausel kann ein Benutzer einer anderen Anmeldung neu zugeordnet werden.The WITH LOGIN clause enables the remapping of a user to a different login. Benutzer ohne Anmeldung, einem Zertifikat zugeordnete Benutzer oder einem asymmetrischen Schlüssel zugeordnete Benutzer können mithilfe dieser Klausel nicht neu zugeordnet werden.Users without a login, users mapped to a certificate, or users mapped to an asymmetric key cannot be re-mapped with this clause. Nur SQL-Benutzer und Windows-Benutzer (oder -Gruppen) können neu zugeordnet werden.Only SQL users and Windows users (or groups) can be remapped. Mit der WITH LOGIN-Klausel kann nicht der Benutzertyp geändert werden, beispielsweise kann ein Windows-Konto nicht in eine SQL ServerSQL Server-Anmeldung geändert werden.The WITH LOGIN clause cannot be used to change the type of user, such as changing a Windows account to a SQL ServerSQL Server login.

Der Name des Benutzers wird automatisch in den Anmeldenamen umbenannt, wenn die folgenden Voraussetzungen erfüllt sind.The name of the user will be automatically renamed to the login name if the following conditions are true.

  • Der Benutzer ist ein Windows-Benutzer.The user is a Windows user.

  • Der Name ist ein Windows-Name (enthält einen umgekehrten Schrägstrich).The name is a Windows name (contains a backslash).

  • Es wurde kein neuer Name angegeben.No new name was specified.

  • Der aktuelle Name unterscheidet sich vom Benutzernamen.The current name differs from the login name.

    Andernfalls wird der Benutzer nicht umbenannt, es sei denn, der Aufrufer ruft zusätzlich die NAME-Klausel auf.Otherwise, the user will not be renamed unless the caller additionally invokes the NAME clause.

Der Name des ein zugeordneter Benutzer eine SQL ServerSQL Server Anmeldung, einem Zertifikat oder einem asymmetrischen Schlüssel kann nicht den umgekehrten Schrägstrich enthalten (\).The name of a user mapped to a SQL ServerSQL Server login, a certificate, or an asymmetric key cannot contain the backslash character (\).

Achtung

Ab SQL Server 2005 hat sich das Verhalten der Schemas geändert.Beginning with SQL Server 2005, the behavior of schemas changed. Daher gibt Code, der voraussetzt, dass Schemas mit Datenbankbenutzern identisch sind, nunmehr keine richtigen Ergebnisse mehr zurück.As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. 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.Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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 such databases you must instead use the new catalog views. In den neuen Katalogsichten wird die Trennung zwischen Prinzipalen und Schemas berücksichtigt, die in SQL Server 2005 eingeführt wurde.The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. Weitere Informationen zu Katalogansichten finden Sie unter Catalog Views (Transact-SQL) (Katalogansichten (Transact-SQL)).For more information about catalog views, see Catalog Views (Transact-SQL).

SicherheitSecurity

Hinweis

Ein Benutzer mit ALTER ANY USER Berechtigung kann das Standardschema jedes Benutzers ändern.A user who has ALTER ANY USER permission can change the default schema of any user. 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.A user who has an altered schema might unknowingly select data from the wrong table or execute code from the wrong schema.

BerechtigungenPermissions

Zum Ändern des Namens eines Benutzers erfordert die ALTER ANY USER Berechtigung.To change the name of a user requires the ALTER ANY USER permission.

So ändern Sie die zielanmeldung eines Benutzers erfordert die Steuerelement Berechtigung für die Datenbank.To change the target login of a user requires the CONTROL permission on the database.

So ändern Sie den Benutzernamen, der ein Benutzer mit Steuerelement Berechtigung für die Datenbank benötigt die Steuerelement Berechtigung für die Datenbank.To change the user name of a user having CONTROL permission on the database requires the CONTROL permission on the database.

So ändern Sie das Standardschema oder Ihre Sprache erfordert ALTER Berechtigung für den Benutzer.To change the default schema or language requires ALTER permission on the user. Benutzer können ihr eigenes Standardschema oder ihre eigene Sprache ändern.Users can change their own default schema or language.

BeispieleExamples

Alle Beispiele, die in einer Benutzerdatenbank ausgeführt werden.All examples are executed in a user database.

A.A. Ändern des Namens eines DatenbankbenutzersChanging the name of a database user

Im folgenden Beispiel wird der Name des Datenbankbenutzers Mary5 in Mary51 geändert.The following example changes the name of the database user Mary5 to Mary51.

ALTER USER Mary5 WITH NAME = Mary51;  
GO  

B.B. Ändern des Standardschemas eines BenutzersChanging the default schema of a user

Im folgenden Beispiel wird das Standardschema des Benutzers Mary51 in Purchasing geändert.The following example changes the default schema of the user Mary51 to Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;  
GO  

C.C. Gleichzeitiges Ändern mehrerer OptionenChanging several options at once

Im folgenden Beispiel werden mehrere Optionen für einen Benutzer einer eigenständigen Datenbank in einer Anweisung geändert.The following example changes several options for a contained database user in one statement.

Gilt für: SQL Server 2012SQL Server 2012 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

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

Siehe auchSee Also

CREATE USER (Transact-SQL) CREATE USER (Transact-SQL)
DROP USER ( Transact-SQL ) DROP USER (Transact-SQL)
Eigenständige Datenbanken Contained Databases
EVENTDATA (Transact-SQL) EVENTDATA (Transact-SQL)
Sp_migrate_user_to_contained ( Transact-SQL )sp_migrate_user_to_contained (Transact-SQL)