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 user_name
 WITH <set_item> [ ,...n ]
[;]

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

Argumente

user_name

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

LOGIN = login_name

Ordnet einem Benutzer einen anderen Anmeldenamen neu zu. Dazu wird die Sicherheits-ID (SID) des Benutzers in die SID des Anmeldenamens geändert.

NAME = new_user_name

Gibt den neuen Namen für diesen Benutzer an. new_user_name darf nicht bereits in der aktuellen Datenbank vorhanden sein.

DEFAULT_SCHEMA = { schema_name | 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 = 'Kennwort'

Gilt für: SQL Server 2012 (11.x) und höhere Versionen, Azure 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öhere Versionen, Azure 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öhere Versionen.

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 enthaltenen Datenbank und nur für enthaltene Benutzer angegeben werden.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ EIN | OFF ]

gilt für: SQL Server 2016 (13.x) und höhere Versionen, Azure 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 Massenlade verschlüsselter Daten in Spalten mit Always Encrypted.

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 kein Standardschema für einen Benutzer bestimmt werden kann, wird das dbo Schema 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.

Die WITH LOGIN-Klausel ermöglicht die Neuzuordnung eines Benutzers zu einer anderen Anmeldung. 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. Die WITH LOGIN-Klausel kann nicht verwendet werden, um den Benutzertyp zu ändern, z. B. das Ändern eines Windows-Kontos in eine SQL Server-Anmeldung.

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 die WITH LOGIN-Klausel verwenden, um diese Situation zu beheben, 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 erst umbenannt, wenn der Aufrufer zusätzlich die NAME Klausel aufruft.

Der Name eines Benutzers, der einer SQL Server-Anmeldung, einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist, darf das umgekehrte Schrägstrichzeichen (\) nicht 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. Mehrere Optionen gleichzeitig ändern

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

Im folgenden Beispiel werden mehrere Optionen für einen Benutzer einer eigenständigen Datenbank in einer Anweisung geändert. Ersetzen Sie <new strong password here> und <old strong password here> durch Ihre eigenen Werte.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, 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

* Azure SQL-Datenbank und Microsoft Fabric *

 

Azure SQL-Datenbank und Microsoft Fabric

Syntax

Syntax für Azure SQL-Datenbank

-- Syntax for Azure SQL Database

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

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = schema_name
| LOGIN = login_name
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]

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

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

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

<set_item> ::=
 NAME = new_user_name

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
[;]

Syntax für Microsoft Fabric Warehouse

-- Syntax for Fabric Data Warehouse

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

<set_item> ::=
 | DEFAULT_SCHEMA = schema_name
[;]

Argumente

user_name

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

LOGIN = login_name

Ordnet einem Benutzer einen anderen Anmeldenamen neu zu. Dazu wird die Sicherheits-ID (SID) des Benutzers in die SID des Anmeldenamens geändert.

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

NAME = new_user_name

Gibt den neuen Namen für diesen Benutzer an. new_user_name darf nicht bereits in der aktuellen Datenbank vorhanden sein.

DEFAULT_SCHEMA = { schema_name | NULL }

Gibt das erste Schema an, das vom Server beim Auflösen der Namen von Objekten für diesen Benutzer durchsucht wird.

Wenn Sie das Standardschema auf NULL festlegen, wird ein Standardschema von einem Benutzer entfernt, der für eine Microsoft Entra-ID-Gruppe erstellt wurde. Die NULL-Option kann nicht mit einer anderen Art von Benutzer verwendet werden.

PASSWORD = 'Kennwort'

gilt für: Azure 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: Azure 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 = [ EIN | OFF ]

gilt für: SQL Server 2016 (13.x) und höhere Versionen, Azure 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 Massenlade verschlüsselter Daten in Spalten mit Always Encrypted.

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 über ein Standardschema verfügt, 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 nicht über ein Standardschema verfügt und Mitglied mehrerer Gruppen ist, ist das Standardschema für den Benutzer die der Gruppe mit dem niedrigsten principal_id und einem explizit festgelegten Standardschema. Wenn kein Standardschema für einen Benutzer bestimmt werden kann, wird das dbo Schema 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 .

Die WITH LOGIN-Klausel ermöglicht die Neuzuordnung eines Benutzers zu einer anderen Anmeldung. 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 können neu zugeordnet werden. Die WITH LOGIN-Klausel kann nicht verwendet werden, um den Benutzertyp zu ändern.

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 erst umbenannt, wenn der Aufrufer zusätzlich die NAME Klausel aufruft.

Der Name eines Benutzers, der einer SQL Server-Anmeldung, einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist, darf das umgekehrte Schrägstrichzeichen (\) nicht 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).

Fabric SQL-Datenbank

Weitere Informationen finden Sie unter:

Fabric Warehouse

In Microsoft Fabric Warehouse ist ALTER USER auf das Festlegen des Standardschemas beschränkt. Alle anderen Argumente, die häufig alter USER in SQL oder anderen Produkten zugeordnet sind, werden nicht unterstützt und geben einen Fehler zurück.

In Microsoft Fabric Warehouse wird die Groß-/Kleinschreibung beachtet.

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 ein Benutzer über ein Standardschema verfügt, wird dieses Schema verwendet. Wenn kein Standardschema angegeben ist, wird das dbo-Schema angewendet. Das Datenbankmodul versucht zunächst, Objekte im Standardschema des Benutzers aufzulösen. Wenn kein übereinstimmende Objekt gefunden wird, wird das dbo-Schema überprüft.

DEFAULT_SCHEMA kann auf ein Schema festgelegt werden, das derzeit nicht in der Datenbank vorhanden ist. Deshalb können Sie DEFAULT_SCHEMA einem Benutzer zuweisen, bevor das Schema erstellt wird.

Weitere Informationen finden Sie unter:

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.

Fabric Warehouse-Rollenberechtigungen

Benutzer mit einer Mindestmitgliedschaft mit mitwirkender Rolle im Arbeitsbereich können das STANDARDSCHEMA eines beliebigen Benutzers in Fabric Data Warehouse ändern.

Benutzer mit VIEWER-Rollenmitgliedschaft im Arbeitsbereich können ihr eigenes Standardschema nicht ändern, es sei denn, ein Benutzer mit erhöhtem Zugriff gewährt diese Berechtigung.

Benutzer, die in der VIEWER-Rolle auf Arbeitsbereichsebene enthalten sind, erfordern die BERECHTIGUNG ALTER ANY USER, um das Standardschema anderer Benutzer zu ä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. Mehrere Optionen gleichzeitig ändern

Im folgenden Beispiel werden mehrere Optionen für einen Benutzer einer eigenständigen Datenbank in einer Anweisung geändert. Ersetzen Sie <new strong password here> und <old strong password here> durch Ihre eigenen Werte.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>';
GO

D: Ä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

* 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 = { schema_name | 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 user_name
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| 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 user_name
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
 NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }

Argumente

user_name

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

LOGIN = login_name

Ordnet einem Benutzer einen anderen Anmeldenamen neu zu. Dazu wird die Sicherheits-ID (SID) des Benutzers in die SID des Anmeldenamens geändert.

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

NAME = new_user_name

Gibt den neuen Namen für diesen Benutzer an. new_user_name darf nicht bereits in der aktuellen Datenbank vorhanden sein.

DEFAULT_SCHEMA = { schema_name | 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 = 'Kennwort'

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 enthaltenen Datenbank und nur für enthaltene Benutzer angegeben werden.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ EIN | 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 Massenlade verschlüsselter Daten in Spalten mit Always Encrypted.

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 über ein Standardschema verfügt, 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 kein Standardschema für einen Benutzer bestimmt werden kann, wird das dbo Schema 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.

Die WITH LOGIN-Klausel ermöglicht die Neuzuordnung eines Benutzers zu einer anderen Anmeldung. 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. Die WITH LOGIN-Klausel kann nicht verwendet werden, um den Benutzertyp zu ändern, z. B. das Ändern eines Windows-Kontos in eine SQL Server-Anmeldung. 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 erst umbenannt, wenn der Aufrufer zusätzlich die NAME Klausel aufruft.

Der Name eines Benutzers, der einer SQL Server-Anmeldung, einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist, darf das umgekehrte Schrägstrichzeichen (\) nicht 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.
  • Um Anmeldeinformationen für Microsoft Entra-Prinzipale anzuzeigen, verwenden Sie den folgenden Befehl: 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.
  • FROM EXTERNAL PROVIDER dient zum Ändern von Windows-Benutzern und -Gruppen von lokalen SQL zu Microsoft Entra-Benutzern und -Gruppen. 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 FROM EXTERNAL PROVIDER syntax gilt für azure SQL Managed Instance 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 die zulässige user_name wie folgt sein:
  • Ein Windows-Benutzer (domain\user).
  • Eine Windows-Gruppe (MyWindowsGroup).
  • Ein Windows-Alias (MyWindowsAlias).
  • Das Ergebnis des BEFEHLS ALTER ersetzt die alte user_name durch den entsprechenden Namen, der in microsoft Entra ID basierend auf der ursprünglichen SID des alten user_namegefunden wird. Der geänderte Name wird ersetzt und in den Metadaten der Datenbank gespeichert:
  • (domain\user) wird durch Microsoft Entra user@domain.comersetzt.
  • (domain\MyWindowsGroup) 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 object_ID konvertiert wurde, im Microsoft Entra ID-Mandanten 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 im Microsoft Entra ID-Mandanten 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. Mehrere Optionen gleichzeitig ändern

Im folgenden Beispiel werden mehrere Optionen für einen Benutzer einer eigenständigen Datenbank in einer Anweisung geändert. Ersetzen Sie <new strong password here> und <old strong password here> durch Ihre eigenen Werte.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, 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;

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Syntax

-- Syntax for Azure Synapse

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

<set_item> ::=
 NAME = new_user_name
 | LOGIN = login_name
 | DEFAULT_SCHEMA = schema_name
[;]

Argumente

user_name

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

LOGIN = login_name

Ordnet einem Benutzer einen anderen Anmeldenamen neu zu. Dazu wird die Sicherheits-ID (SID) des Benutzers in die SID des Anmeldenamens geändert.

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

NAME = new_user_name

Gibt den neuen Namen für diesen Benutzer an. new_user_name darf nicht bereits in der aktuellen Datenbank vorhanden sein.

DEFAULT_SCHEMA = { schema_name | 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 über ein Standardschema verfügt, 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 kein Standardschema für einen Benutzer bestimmt werden kann, wird das dbo Schema 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 .

Die WITH LOGIN-Klausel ermöglicht die Neuzuordnung eines Benutzers zu einer anderen Anmeldung. 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. Die WITH LOGIN-Klausel kann nicht verwendet werden, um den Benutzertyp zu ändern, z. B. das Ändern eines Windows-Kontos in eine SQL Server-Anmeldung.

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 erst umbenannt, wenn der Aufrufer zusätzlich die NAME Klausel aufruft.

Der Name eines Benutzers, der einer SQL Server-Anmeldung, einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist, darf das umgekehrte Schrägstrichzeichen (\) nicht 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

* Analytics
Platform System (PDW) *

 

Analyseplattformsystem

Syntax

-- Syntax for Analytics Platform System

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

<set_item> ::=
 NAME = new_user_name
 | LOGIN = login_name
 | DEFAULT_SCHEMA = schema_name
[;]

Argumente

user_name

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

LOGIN = login_name

Ordnet einem Benutzer einen anderen Anmeldenamen neu zu. Dazu wird die Sicherheits-ID (SID) des Benutzers in die SID des Anmeldenamens geändert.

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

NAME = new_user_name

Gibt den neuen Namen für diesen Benutzer an. new_user_name darf nicht bereits in der aktuellen Datenbank vorhanden sein.

DEFAULT_SCHEMA = { schema_name | 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 über ein Standardschema verfügt, 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 kein Standardschema für einen Benutzer bestimmt werden kann, wird das dbo Schema 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 .

Die WITH LOGIN-Klausel ermöglicht die Neuzuordnung eines Benutzers zu einer anderen Anmeldung. 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. Die WITH LOGIN-Klausel kann nicht verwendet werden, um den Benutzertyp zu ändern, z. B. das Ändern eines Windows-Kontos in eine SQL Server-Anmeldung.

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 erst umbenannt, wenn der Aufrufer zusätzlich die NAME Klausel aufruft.

Der Name eines Benutzers, der einer SQL Server-Anmeldung, einem Zertifikat oder einem asymmetrischen Schlüssel zugeordnet ist, darf das umgekehrte Schrägstrichzeichen (\) nicht 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