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
Verwandte Inhalte
* 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:
- sql granularen Berechtigungen in Fabric Warehouse
- Sicherheit für Data Warehousing in Microsoft Fabric
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
Verwandte Inhalte
* 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
oderX
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. DieFROM 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 altenuser_name
gefunden wird. Der geänderte Name wird ersetzt und in den Metadaten der Datenbank gespeichert: - (
domain\user
) wird durch Microsoft Entrauser@domain.com
ersetzt. - (
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
oderX
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.com
neu 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.com
neu 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;
Verwandte Inhalte
* 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
Verwandte Inhalte
* 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