ALTER USER (Transact-SQL)
Byter namn på en databasanvändare eller ändrar standardschemat.
Transact-SQL syntaxkonventioner
Not
Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).
Välj en produkt
På följande rad väljer du det produktnamn som du är intresserad av och endast den produktinformationen visas.
* SQL Server *
SQL Server
Syntax
-- Syntax for SQL Server
ALTER USER userName
WITH <set_item> [ ,...n ]
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
Argument
userName Anger namnet som användaren identifieras med i den här databasen.
LOGIN =loginName mappar om en användare till en annan inloggning genom att ändra användarens säkerhetsidentifierare (SID) så att den matchar inloggningens SID.
NAME =newUserName Anger det nya namnet för den här användaren. newUserName får inte redan förekomma i den aktuella databasen.
DEFAULT_SCHEMA = { schemaName | NULL } Anger det första schemat som ska genomsökas av servern när det löser namnen på objekten för den här användaren. Om du ställer in standardschemat på NULL tar ett standardschema bort från en Windows-grupp. Null-alternativet kan inte användas med en Windows-användare.
LÖSENORD =lösenordgäller för: SQL Server 2012 (11.x) och senare SQL Database.
Anger lösenordet för den användare som ändras. Lösenord är skiftlägeskänsliga.
Not
Det här alternativet är endast tillgängligt för inneslutna användare. Mer information finns i inneslutna databaser och sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD ="oldpassword"gäller för: SQL Server 2012 (11.x) och senare SQL Database.
Det aktuella användarlösenordet som ska ersättas av "lösenord". Lösenord är skiftlägeskänsliga. OLD_PASSWORD krävs för att ändra ett lösenord, såvida du inte har ÄNDRA NÅGON ANVÄNDARE behörighet. Att kräva OLD_PASSWORD hindrar användare med IMPERSONATION- behörighet från att ändra lösenordet.
Not
Det här alternativet är endast tillgängligt för inneslutna användare.
DEFAULT_LANGUAGE ={ NONE | <lcid> | <språknamn> | <språkalias> }Gäller för: SQL Server 2012 (11.x) och senare.
Anger ett standardspråk som ska tilldelas användaren. Om det här alternativet är inställt på NONE är standardspråket inställt på databasens aktuella standardspråk. Om standardspråket för databasen ändras senare förblir användarens standardspråk oförändrat. DEFAULT_LANGUAGE kan vara det lokala ID:t (lcid), språkets namn eller språkaliaset.
Not
Det här alternativet kan endast anges i en innesluten databas och endast för inneslutna användare.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] gäller för: SQL Server 2016 (13.x) och senare SQL Database.
Undertrycker kryptografiska metadatakontroller på servern i masskopieringsåtgärder. På så sätt kan användaren masskopiera krypterade data mellan tabeller eller databaser, utan att dekryptera data. Standardvärdet är AV.
Varning
Felaktig användning av det här alternativet kan leda till att data skadas. Mer information finns i Migrera känsliga data som skyddas av Always Encrypted.
Anmärkningar
Standardschemat är det första schemat som genomsöks av servern när det löser namnen på objekten för den här databasanvändaren. Om inget annat anges är standardschemat ägare till objekt som skapats av den här databasanvändaren.
Om användaren har ett standardschema används standardschemat. Om användaren inte har något standardschema, men användaren är medlem i en grupp som har ett standardschema, används standardschemat för gruppen. Om användaren inte har något standardschema och är medlem i mer än en grupp är standardschemat för användaren det för Windows-gruppen med den lägsta principal_id och ett explicit inställt standardschema. Om inget standardschema kan fastställas för en användare används dbo- schema.
DEFAULT_SCHEMA kan ställas in på ett schema som för närvarande inte förekommer i databasen. Därför kan du tilldela en DEFAULT_SCHEMA till en användare innan schemat skapas.
DEFAULT_SCHEMA kan inte anges för en användare som är mappad till ett certifikat eller en asymmetrisk nyckel.
Viktig
Värdet för DEFAULT_SCHEMA ignoreras om användaren är medlem i sysadmin fast serverroll. Alla medlemmar i sysadmin fast serverroll har ett standardschema på dbo
.
Du kan bara ändra namnet på en användare som är mappad till en Windows-inloggning eller -grupp när SID för det nya användarnamnet matchar det SID som registreras i databasen. Den här kontrollen hjälper till att förhindra förfalskning av Windows-inloggningar i databasen.
MED LOGIN-satsen gör det möjligt att mappa om en användare till en annan inloggning. Användare utan inloggning, användare som mappas till ett certifikat eller användare som mappas till en asymmetrisk nyckel kan inte mappas om med den här satsen. Endast SQL-användare och Windows-användare (eller grupper) kan mappas om. WITH LOGIN-satsen kan inte användas för att ändra typen av användare, till exempel ändra ett Windows-konto till en SQL Server-inloggning.
Ett felmatchat SID kan inträffa när du har återställt en databas från en annan server och har en databasanvändare mappad till en SQL Server-inloggning. Du kan använda WITH LOGIN-satsen för att korrigera den här situationen genom att ersätta användar-SID i databasen med inloggnings-SID från servern.
Användarens namn byts automatiskt namn till inloggningsnamnet om följande villkor är uppfyllda.
Användaren är en Windows-användare.
Namnet är ett Windows-namn (innehåller ett omvänt snedstreck).
Inget nytt namn har angetts.
Det aktuella namnet skiljer sig från inloggningsnamnet.
Annars kommer användaren inte att byta namn om inte anroparen dessutom anropar NAME-satsen.
Namnet på en användare som mappas till en SQL Server-inloggning, ett certifikat eller en asymmetrisk nyckel får inte innehålla omvänt snedstreck (\).
Försiktighet
Från och med SQL Server 2005 ändrades beteendet för scheman. Det innebär att kod som förutsätter att scheman motsvarar databasanvändare kanske inte längre returnerar korrekta resultat. Gamla katalogvyer, inklusive sysobjects, bör inte användas i en databas där någon av följande DDL-instruktioner någonsin har använts: 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. I sådana databaser måste du i stället använda de nya katalogvyerna. De nya katalogvyerna tar hänsyn till separationen av huvudnamn och scheman som introducerades i SQL Server 2005. Mer information om katalogvyer finns i Katalogvyer (Transact-SQL).
Säkerhet
Not
En användare som har ÄNDRA VALFRI ANVÄNDARE behörighet kan ändra standardschemat för alla användare. En användare som har ett ändrat schema kan omedvetet välja data från fel tabell eller köra kod från fel schema.
Behörigheter
Om du vill ändra namnet på en användare måste ÄNDRA NÅGON ANVÄNDARE behörighet.
För att ändra målinloggningen för en användare krävs behörigheten CONTROL för databasen.
Om du vill ändra användarnamnet för en användare som har behörigheten CONTROL på databasen krävs behörigheten CONTROL i databasen.
För att ändra standardschemat eller språket krävs ALTER- behörighet för användaren. Användare kan ändra sitt eget standardschema eller språk.
Exempel
Alla exempel körs i en användardatabas.
A. Ändra namnet på en databasanvändare
I följande exempel ändras namnet på databasanvändaren Mary5
till Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Ändra standardschemat för en användare
I följande exempel ändras standardschemat för användaren Mary51
till Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Ändra flera alternativ samtidigt
I följande exempel ändras flera alternativ för en innesluten databasanvändare i en -instruktion.
gäller för: SQL Server 2012 (11.x) och senare.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, DEFAULT_LANGUAGE= French ;
GO
D. Korrigera ett felmatchat SID
I följande exempel korrigeras användar-SID i databasen så att det matchar SID på servern för en SQL Server-autentiserad inloggning.
ALTER USER Mai
WITH LOGIN = Mai;
GO
Se även
* Azure SQL Database och SQL Database i Infrastrukturresurser *
Azure SQL Database och SQL-databas i Microsoft Fabric
Syntax
Syntax för Azure SQL Database
-- Syntax for Azure SQL Database
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = schemaName
| LOGIN = loginName
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]
-- Azure SQL Database Update Syntax
ALTER USER userName
WITH <set_item> [ ,...n ]
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
-- SQL Database syntax when connected to a federation member
ALTER USER userName
WITH <set_item> [ ,... n ]
[;]
<set_item> ::=
NAME = newUserName
Syntax för SQL-databas i 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
[;]
Argument
userName
Anger det namn med vilket användaren identifieras i den här databasen.
INLOGGNING =loginName
Mappar om en användare till en annan inloggning genom att ändra användarens säkerhetsidentifierare (SID) så att den matchar inloggningens SID.
Om ALTER USER-instruktionen är den enda instruktionen i en SQL-batch stöder Azure SQL Database WITH LOGIN-satsen. Om ALTER USER-instruktionen inte är den enda instruktionen i en SQL-batch eller körs i dynamisk SQL stöds inte WITH LOGIN-satsen.
NAME =newUserName
Anger det nya namnet för den här användaren. newUserName får inte redan förekomma i den aktuella databasen.
DEFAULT_SCHEMA = { schemaName | NULL }
Anger det första schemat som ska genomsökas av servern när det löser namnen på objekten för den här användaren. Om du ställer in standardschemat på NULL tar ett standardschema bort från en Windows-grupp. Null-alternativet kan inte användas med en Windows-användare.
LÖSENORD =lösenord
gäller för: SQL Database.
Anger lösenordet för den användare som ändras. Lösenord är skiftlägeskänsliga.
Not
Det här alternativet är endast tillgängligt för inneslutna användare. Mer information finns i inneslutna databaser och sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD ="oldpassword"
gäller för: SQL Database.
Det aktuella användarlösenordet som ska ersättas av "lösenord". Lösenord är skiftlägeskänsliga. OLD_PASSWORD krävs för att ändra ett lösenord, såvida du inte har ÄNDRA NÅGON ANVÄNDARE behörighet. Att kräva OLD_PASSWORD hindrar användare med IMPERSONATION- behörighet från att ändra lösenordet.
Not
Det här alternativet är endast tillgängligt för inneslutna användare.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
gäller för: SQL Server 2016 (13.x) och senare SQL Database.
Undertrycker kryptografiska metadatakontroller på servern i masskopieringsåtgärder. På så sätt kan användaren masskopiera krypterade data mellan tabeller eller databaser, utan att dekryptera data. Standardvärdet är AV.
Varning
Felaktig användning av det här alternativet kan leda till att data skadas. Mer information finns i Migrera känsliga data som skyddas av Always Encrypted.
Anmärkningar
Standardschemat är det första schemat som genomsöks av servern när det löser namnen på objekten för den här databasanvändaren. Om inget annat anges är standardschemat ägare till objekt som skapats av den här databasanvändaren.
Om användaren har ett standardschema används standardschemat. Om användaren inte har något standardschema, men användaren är medlem i en grupp som har ett standardschema, används standardschemat för gruppen. Om användaren inte har något standardschema och är medlem i mer än en grupp är standardschemat för användaren det för Windows-gruppen med den lägsta principal_id och ett explicit inställt standardschema. Om inget standardschema kan fastställas för en användare används dbo- schema.
DEFAULT_SCHEMA kan ställas in på ett schema som för närvarande inte förekommer i databasen. Därför kan du tilldela en DEFAULT_SCHEMA till en användare innan schemat skapas.
DEFAULT_SCHEMA kan inte anges för en användare som är mappad till ett certifikat eller en asymmetrisk nyckel.
Viktig
Värdet för DEFAULT_SCHEMA ignoreras om användaren är medlem i sysadmin fast serverroll. Alla medlemmar i sysadmin fast serverroll har ett standardschema på dbo
.
Du kan bara ändra namnet på en användare som är mappad till en Windows-inloggning eller -grupp när SID för det nya användarnamnet matchar det SID som registreras i databasen. Den här kontrollen hjälper till att förhindra förfalskning av Windows-inloggningar i databasen.
MED LOGIN-satsen gör det möjligt att mappa om en användare till en annan inloggning. Användare utan inloggning, användare som mappas till ett certifikat eller användare som mappas till en asymmetrisk nyckel kan inte mappas om med den här satsen. Endast SQL-användare och Windows-användare (eller grupper) kan mappas om. WITH LOGIN-satsen kan inte användas för att ändra typen av användare, till exempel ändra ett Windows-konto till en SQL Server-inloggning.
Användarens namn byts automatiskt namn till inloggningsnamnet om följande villkor är uppfyllda.
Användaren är en Windows-användare.
Namnet är ett Windows-namn (innehåller ett omvänt snedstreck).
Inget nytt namn har angetts.
Det aktuella namnet skiljer sig från inloggningsnamnet.
Annars kommer användaren inte att byta namn om inte anroparen dessutom anropar NAME-satsen.
Namnet på en användare som mappas till en SQL Server-inloggning, ett certifikat eller en asymmetrisk nyckel får inte innehålla omvänt snedstreck (\).
Försiktighet
Från och med SQL Server 2005 ändrades beteendet för scheman. Det innebär att kod som förutsätter att scheman motsvarar databasanvändare kanske inte längre returnerar korrekta resultat. Gamla katalogvyer, inklusive sysobjects, bör inte användas i en databas där någon av följande DDL-instruktioner någonsin har använts: 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. I sådana databaser måste du i stället använda de nya katalogvyerna. De nya katalogvyerna tar hänsyn till separationen av huvudnamn och scheman som introducerades i SQL Server 2005. Mer information om katalogvyer finns i Katalogvyer (Transact-SQL).
Säkerhet
Not
En användare som har ÄNDRA VALFRI ANVÄNDARE behörighet kan ändra standardschemat för alla användare. En användare som har ett ändrat schema kan omedvetet välja data från fel tabell eller köra kod från fel schema.
Behörigheter
Om du vill ändra namnet på en användare måste ÄNDRA NÅGON ANVÄNDARE behörighet.
För att ändra målinloggningen för en användare krävs behörigheten CONTROL för databasen.
Om du vill ändra användarnamnet för en användare som har behörigheten CONTROL på databasen krävs behörigheten CONTROL i databasen.
För att ändra standardschemat eller språket krävs ALTER- behörighet för användaren. Användare kan ändra sitt eget standardschema eller språk.
Exempel
Alla exempel körs i en användardatabas.
A. Ändra namnet på en databasanvändare
I följande exempel ändras namnet på databasanvändaren Mary5
till Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Ändra standardschemat för en användare
I följande exempel ändras standardschemat för användaren Mary51
till Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Ändra flera alternativ samtidigt
I följande exempel ändras flera alternativ för en innesluten databasanvändare i en -instruktion.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per';
GO
Se även
* SQL Managed Instance *
Azure SQL Managed Instance
Syntax
Viktig
Endast följande alternativ stöds för Azure SQL Managed Instance när du tillämpar på användare med Microsoft Entra-inloggningar: DEFAULT_SCHEMA = { schemaName | NULL }
och DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }
Det finns ett nytt syntaxtillägg som har lagts till för att hjälpa till att mappa om användare i en databas som migrerades till Azure SQL Managed Instance. SYNTAXEN ALTER USER hjälper till att mappa databasanvändare i en federerad och synkroniserad domän med Microsoft Entra-ID till Microsoft Entra-inloggningar.
-- Syntax for SQL Managed Instance
ALTER USER userName
{ WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
-- Users or groups that are migrated as federated and synchronized with Azure AD have the following syntax:
/** Applies to Windows users that were migrated and have the following user names:
- Windows user <domain\user>
- Windows group <domain\MyWindowsGroup>
- Windows alias <MyWindowsAlias>
**/
ALTER USER userName
{ WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
Argument
userName Anger namnet som användaren identifieras med i den här databasen.
LOGIN =loginName mappar om en användare till en annan inloggning genom att ändra användarens säkerhetsidentifierare (SID) så att den matchar inloggningens SID.
Om ALTER USER-instruktionen är den enda instruktionen i en SQL-batch stöder Azure SQL Database WITH LOGIN-satsen. Om ALTER USER-instruktionen inte är den enda instruktionen i en SQL-batch eller körs i dynamisk SQL stöds inte WITH LOGIN-satsen.
NAME =newUserName Anger det nya namnet för den här användaren. newUserName får inte redan förekomma i den aktuella databasen.
DEFAULT_SCHEMA = { schemaName | NULL } Anger det första schemat som ska genomsökas av servern när det löser namnen på objekten för den här användaren. Om du ställer in standardschemat på NULL tar ett standardschema bort från en Windows-grupp. Null-alternativet kan inte användas med en Windows-användare.
LÖSENORD =lösenord
Anger lösenordet för den användare som ändras. Lösenord är skiftlägeskänsliga.
Not
Det här alternativet är endast tillgängligt för inneslutna användare. Mer information finns i inneslutna databaser och sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD ="oldpassword"
Det aktuella användarlösenordet som ska ersättas av "lösenord". Lösenord är skiftlägeskänsliga. OLD_PASSWORD krävs för att ändra ett lösenord, såvida du inte har ÄNDRA NÅGON ANVÄNDARE behörighet. Att kräva OLD_PASSWORD hindrar användare med IMPERSONATION- behörighet från att ändra lösenordet.
Not
Det här alternativet är endast tillgängligt för inneslutna användare.
DEFAULT_LANGUAGE ={ NONE | <lcid> | <språknamn> | <språkalias> }
Anger ett standardspråk som ska tilldelas användaren. Om det här alternativet är inställt på NONE är standardspråket inställt på databasens aktuella standardspråk. Om standardspråket för databasen ändras senare förblir användarens standardspråk oförändrat. DEFAULT_LANGUAGE kan vara det lokala ID:t (lcid), språkets namn eller språkaliaset.
Not
Det här alternativet kan endast anges i en innesluten databas och endast för inneslutna användare.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
Undertrycker kryptografiska metadatakontroller på servern i masskopieringsåtgärder. På så sätt kan användaren masskopiera krypterade data mellan tabeller eller databaser, utan att dekryptera data. Standardvärdet är AV.
Varning
Felaktig användning av det här alternativet kan leda till att data skadas. Mer information finns i Migrera känsliga data som skyddas av Always Encrypted.
Anmärkningar
Standardschemat är det första schemat som genomsöks av servern när det löser namnen på objekten för den här databasanvändaren. Om inget annat anges är standardschemat ägare till objekt som skapats av den här databasanvändaren.
Om användaren har ett standardschema används standardschemat. Om användaren inte har något standardschema, men användaren är medlem i en grupp som har ett standardschema, används standardschemat för gruppen. Om användaren inte har något standardschema och är medlem i mer än en grupp är standardschemat för användaren det för Windows-gruppen med den lägsta principal_id och ett explicit inställt standardschema. Om inget standardschema kan fastställas för en användare används dbo- schema.
DEFAULT_SCHEMA kan ställas in på ett schema som för närvarande inte förekommer i databasen. Därför kan du tilldela en DEFAULT_SCHEMA till en användare innan schemat skapas.
DEFAULT_SCHEMA kan inte anges för en användare som är mappad till ett certifikat eller en asymmetrisk nyckel.
Viktig
Värdet för DEFAULT_SCHEMA ignoreras om användaren är medlem i sysadmin fast serverroll. Alla medlemmar i sysadmin fast serverroll har ett standardschema på dbo
.
Du kan bara ändra namnet på en användare som är mappad till en Windows-inloggning eller -grupp när SID för det nya användarnamnet matchar det SID som registreras i databasen. Den här kontrollen hjälper till att förhindra förfalskning av Windows-inloggningar i databasen.
MED LOGIN-satsen gör det möjligt att mappa om en användare till en annan inloggning. Användare utan inloggning, användare som mappas till ett certifikat eller användare som mappas till en asymmetrisk nyckel kan inte mappas om med den här satsen. Endast SQL-användare och Windows-användare (eller grupper) kan mappas om. WITH LOGIN-satsen kan inte användas för att ändra typen av användare, till exempel ändra ett Windows-konto till en SQL Server-inloggning. Det enda undantaget är när du ändrar en Windows-användare till en Microsoft Entra-användare.
Not
Följande regler gäller inte för Windows-användare på Azure SQL Managed Instance eftersom vi inte har stöd för att skapa Windows-inloggningar på Azure SQL Managed Instance. Alternativet MED INLOGGNING kan endast användas om Microsoft Entra-inloggningar finns.
Användarens namn byts automatiskt namn till inloggningsnamnet om följande villkor är uppfyllda.
Användaren är en Windows-användare.
Namnet är ett Windows-namn (innehåller ett omvänt snedstreck).
Inget nytt namn har angetts.
Det aktuella namnet skiljer sig från inloggningsnamnet.
Annars kommer användaren inte att byta namn om inte anroparen dessutom anropar NAME-satsen.
Namnet på en användare som mappas till en SQL Server-inloggning, ett certifikat eller en asymmetrisk nyckel får inte innehålla omvänt snedstreck (\).
Försiktighet
Från och med SQL Server 2005 ändrades beteendet för scheman. Det innebär att kod som förutsätter att scheman motsvarar databasanvändare kanske inte längre returnerar korrekta resultat. Gamla katalogvyer, inklusive sysobjects, bör inte användas i en databas där någon av följande DDL-instruktioner någonsin har använts: 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. I sådana databaser måste du i stället använda de nya katalogvyerna. De nya katalogvyerna tar hänsyn till separationen av huvudnamn och scheman som introducerades i SQL Server 2005. Mer information om katalogvyer finns i Katalogvyer (Transact-SQL).
Kommentarer för Windows-användare i SQL lokalt migrerade till Azure SQL Managed Instance
Dessa kommentarer gäller för autentisering som Windows-användare som har federerats och synkroniserats med Microsoft Entra-ID.
- Validering av Windows-användare eller -grupper som mappas till Microsoft Entra-ID görs som standard via Graph API i alla versioner av ALTER USER-syntaxen som används för migrering.
- Lokala användare som har alias (använd ett annat namn än det ursprungliga Windows-kontot) behåller det aliaserade namnet.
- För Microsoft Entra-autentisering gäller parametern LOGIN endast för Azure SQL Managed Instance och kan inte användas med SQL Database.
- Om du vill visa inloggningar för Microsoft Entra-huvudnamn använder du följande kommando:
select * from sys.server_principals
.
- Kontrollera att inloggningens angivna typ är
E
ellerX
. - ALTERNATIVET LÖSENORD kan inte användas för Microsoft Entra-användare.
- I alla migreringsfall överförs roller och behörigheter för Windows-användare eller -grupper automatiskt till de nya Microsoft Entra-användarna eller grupperna.
- Ett nytt syntaxtillägg, FRÅN EXTERN PROVIDER är tillgängligt för att ändra Windows-användare och -grupper från SQL lokalt till Microsoft Entra-användare och -grupper. Windows-domänen måste federeras med Microsoft Entra-ID och alla Windows-domänmedlemmar måste finnas i Microsoft Entra-ID när du använder det här tillägget. Syntaxen FROM EXTERNAL PROVIDER gäller för Azure SQL Managed Instance och bör användas om Windows-användare inte har inloggningar på den ursprungliga SQL-instansen och behöver mappas till fristående Microsoft Entra-databasanvändare.
- I det här fallet kan det tillåtna användarnamnet vara:
- En änklingsanvändare (domän\användare).
- En Windows-grupp (MyWindowsGroup).
- Ett Windows-alias (MyWindowsAlias).
- Resultatet av ALTER-kommandot ersätter det gamla användarnamnet med motsvarande namn som finns i Microsoft Entra-ID baserat på det ursprungliga SID:t för det gamla användarnamnet. Det ändrade namnet ersätts och lagras i databasens metadata:
- (domain\user) ersätts med Microsoft Entra user@domain.com.
- (domain\MyWindowsGroup) ersätts med Microsoft Entra-gruppen.
- (MyWindowsAlias) förblir oförändrad, men SID för den här användaren kontrolleras i Microsoft Entra-ID.
Not
Om SID för den ursprungliga användaren som konverterats till objectID inte kan hittas i Microsoft Entra-ID misslyckas kommandot ALTER USER.
- Om du vill visa ändrade användare använder du följande kommando:
select * from sys.database_principals
- Kontrollera användarens angivna typ
E
ellerX
. - När NAME används för att migrera Windows-användare till Microsoft Entra-användare gäller följande begränsningar:
- En giltig INLOGGNING måste anges.
- NAMNET checkas in i Microsoft Entra-ID:t och kan endast vara:
- Namnet på LOGIN.
- Ett alias – namnet kan inte finnas i Microsoft Entra-ID.
- I alla andra fall misslyckas syntaxen.
Säkerhet
Not
En användare som har ÄNDRA VALFRI ANVÄNDARE behörighet kan ändra standardschemat för alla användare. En användare som har ett ändrat schema kan omedvetet välja data från fel tabell eller köra kod från fel schema.
Behörigheter
Om du vill ändra namnet på en användare måste ÄNDRA NÅGON ANVÄNDARE behörighet.
För att ändra målinloggningen för en användare krävs behörigheten CONTROL för databasen.
Om du vill ändra användarnamnet för en användare som har behörigheten CONTROL på databasen krävs behörigheten CONTROL i databasen.
För att ändra standardschemat eller språket krävs ALTER- behörighet för användaren. Användare kan ändra sitt eget standardschema eller språk.
Exempel
Alla exempel körs i en användardatabas.
A. Ändra namnet på en databasanvändare
I följande exempel ändras namnet på databasanvändaren Mary5
till Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Ändra standardschemat för en användare
I följande exempel ändras standardschemat för användaren Mary51
till Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Ändra flera alternativ samtidigt
I följande exempel ändras flera alternativ för en innesluten databasanvändare i en -instruktion.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, DEFAULT_LANGUAGE= French ;
GO
D. Mappa användaren i databasen till en Microsoft Entra-inloggning efter migreringen
I följande exempel mappas användaren igen, westus/joe
till en Microsoft Entra-användare joe@westus.com
. Det här exemplet gäller inloggningar som redan finns i den hanterade instansen. Detta måste utföras när du har slutfört en databasmigrering till Azure SQL Managed Instance och vill använda Microsoft Entra-inloggningen för att autentisera.
ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com]
E. Mappa en gammal Windows-användare i databasen utan inloggning i Azure SQL Managed Instance till en Microsoft Entra-användare
I följande exempel mappas användaren, westus/joe
utan inloggning, till en Microsoft Entra-användare joe@westus.com
. Den federerade användaren måste finnas i Microsoft Entra-ID.
ALTER USER [westus/joe] FROM EXTERNAL PROVIDER
F. Mappa användaraliaset till en befintlig Microsoft Entra-inloggning
I följande exempel mappas användarnamnet om, westus\joe
till joe_alias
. Motsvarande Microsoft Entra-inloggning i det här fallet är joe@westus.com
.
ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com], name= joe_alias
G. Mappa en Windows-grupp som migrerades i Azure SQL Managed Instance till en Microsoft Entra-grupp
I följande exempel mappas den gamla lokala gruppen om westus\mygroup
till en Microsoft Entra-grupp mygroup
i den hanterade instansen. Gruppen måste finnas i Microsoft Entra-ID.
ALTER USER [westus\mygroup] WITH LOGIN = mygroup
Se även
* Azure Synapse
Analys *
Azure Synapse Analytics
Syntax
-- Syntax for Azure Synapse
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| LOGIN = loginName
| DEFAULT_SCHEMA = schema_name
[;]
Argument
userName Anger namnet som användaren identifieras med i den här databasen.
LOGIN =loginName mappar om en användare till en annan inloggning genom att ändra användarens säkerhetsidentifierare (SID) så att den matchar inloggningens SID.
Om ALTER USER-instruktionen är den enda instruktionen i en SQL-batch stöder Azure SQL Database WITH LOGIN-satsen. Om ALTER USER-instruktionen inte är den enda instruktionen i en SQL-batch eller körs i dynamisk SQL stöds inte WITH LOGIN-satsen.
NAME =newUserName Anger det nya namnet för den här användaren. newUserName får inte redan förekomma i den aktuella databasen.
DEFAULT_SCHEMA = { schemaName | NULL } Anger det första schemat som ska genomsökas av servern när det löser namnen på objekten för den här användaren. Om du ställer in standardschemat på NULL tar ett standardschema bort från en Windows-grupp. Null-alternativet kan inte användas med en Windows-användare.
Anmärkningar
Standardschemat är det första schemat som genomsöks av servern när det löser namnen på objekten för den här databasanvändaren. Om inget annat anges är standardschemat ägare till objekt som skapats av den här databasanvändaren.
Om användaren har ett standardschema används standardschemat. Om användaren inte har något standardschema, men användaren är medlem i en grupp som har ett standardschema, används standardschemat för gruppen. Om användaren inte har något standardschema och är medlem i mer än en grupp är standardschemat för användaren det för Windows-gruppen med den lägsta principal_id och ett explicit inställt standardschema. Om inget standardschema kan fastställas för en användare används dbo- schema.
DEFAULT_SCHEMA kan ställas in på ett schema som för närvarande inte förekommer i databasen. Därför kan du tilldela en DEFAULT_SCHEMA till en användare innan schemat skapas.
DEFAULT_SCHEMA kan inte anges för en användare som är mappad till ett certifikat eller en asymmetrisk nyckel.
Viktig
Värdet för DEFAULT_SCHEMA ignoreras om användaren är medlem i sysadmin fast serverroll. Alla medlemmar i sysadmin fast serverroll har ett standardschema på dbo
.
MED LOGIN-satsen gör det möjligt att mappa om en användare till en annan inloggning. Användare utan inloggning, användare som mappas till ett certifikat eller användare som mappas till en asymmetrisk nyckel kan inte mappas om med den här satsen. Endast SQL-användare och Windows-användare (eller grupper) kan mappas om. WITH LOGIN-satsen kan inte användas för att ändra typen av användare, till exempel ändra ett Windows-konto till en SQL Server-inloggning.
Användarens namn byts automatiskt namn till inloggningsnamnet om följande villkor är uppfyllda.
Inget nytt namn har angetts.
Det aktuella namnet skiljer sig från inloggningsnamnet.
Annars kommer användaren inte att byta namn om inte anroparen dessutom anropar NAME-satsen.
Namnet på en användare som mappas till en SQL Server-inloggning, ett certifikat eller en asymmetrisk nyckel får inte innehålla omvänt snedstreck (\).
Försiktighet
Från och med SQL Server 2005 ändrades beteendet för scheman. Det innebär att kod som förutsätter att scheman motsvarar databasanvändare kanske inte längre returnerar korrekta resultat. Gamla katalogvyer, inklusive sysobjects, bör inte användas i en databas där någon av följande DDL-instruktioner någonsin har använts: 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. I sådana databaser måste du i stället använda de nya katalogvyerna. De nya katalogvyerna tar hänsyn till separationen av huvudnamn och scheman som introducerades i SQL Server 2005. Mer information om katalogvyer finns i Katalogvyer (Transact-SQL).
Säkerhet
Not
En användare som har ÄNDRA VALFRI ANVÄNDARE behörighet kan ändra standardschemat för alla användare. En användare som har ett ändrat schema kan omedvetet välja data från fel tabell eller köra kod från fel schema.
Behörigheter
Om du vill ändra namnet på en användare måste ÄNDRA NÅGON ANVÄNDARE behörighet.
För att ändra målinloggningen för en användare krävs behörigheten CONTROL för databasen.
Om du vill ändra användarnamnet för en användare som har behörigheten CONTROL på databasen krävs behörigheten CONTROL i databasen.
För att ändra standardschemat eller språket krävs ALTER- behörighet för användaren. Användare kan ändra sitt eget standardschema eller språk.
Exempel
Alla exempel körs i en användardatabas.
A. Ändra namnet på en databasanvändare
I följande exempel ändras namnet på databasanvändaren Mary5
till Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Ändra standardschemat för en användare
I följande exempel ändras standardschemat för användaren Mary51
till Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
Se även
* Analys
Plattformssystem (PDW) *
Analysplattformssystem
Syntax
-- Syntax for Analytics Platform System
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| LOGIN = loginName
| DEFAULT_SCHEMA = schema_name
[;]
Argument
userName Anger namnet som användaren identifieras med i den här databasen.
LOGIN =loginName mappar om en användare till en annan inloggning genom att ändra användarens säkerhetsidentifierare (SID) så att den matchar inloggningens SID.
Om ALTER USER-instruktionen är den enda instruktionen i en SQL-batch stöder Azure SQL Database WITH LOGIN-satsen. Om ALTER USER-instruktionen inte är den enda instruktionen i en SQL-batch eller körs i dynamisk SQL stöds inte WITH LOGIN-satsen.
NAME =newUserName Anger det nya namnet för den här användaren. newUserName får inte redan förekomma i den aktuella databasen.
DEFAULT_SCHEMA = { schemaName | NULL } Anger det första schemat som ska genomsökas av servern när det löser namnen på objekten för den här användaren. Om du ställer in standardschemat på NULL tar ett standardschema bort från en Windows-grupp. Null-alternativet kan inte användas med en Windows-användare.
Anmärkningar
Standardschemat är det första schemat som genomsöks av servern när det löser namnen på objekten för den här databasanvändaren. Om inget annat anges är standardschemat ägare till objekt som skapats av den här databasanvändaren.
Om användaren har ett standardschema används standardschemat. Om användaren inte har något standardschema, men användaren är medlem i en grupp som har ett standardschema, används standardschemat för gruppen. Om användaren inte har något standardschema och är medlem i mer än en grupp är standardschemat för användaren det för Windows-gruppen med den lägsta principal_id och ett explicit inställt standardschema. Om inget standardschema kan fastställas för en användare används dbo- schema.
DEFAULT_SCHEMA kan ställas in på ett schema som för närvarande inte förekommer i databasen. Därför kan du tilldela en DEFAULT_SCHEMA till en användare innan schemat skapas.
DEFAULT_SCHEMA kan inte anges för en användare som är mappad till ett certifikat eller en asymmetrisk nyckel.
Viktig
Värdet för DEFAULT_SCHEMA ignoreras om användaren är medlem i sysadmin fast serverroll. Alla medlemmar i sysadmin fast serverroll har ett standardschema på dbo
.
MED LOGIN-satsen gör det möjligt att mappa om en användare till en annan inloggning. Användare utan inloggning, användare som mappas till ett certifikat eller användare som mappas till en asymmetrisk nyckel kan inte mappas om med den här satsen. Endast SQL-användare och Windows-användare (eller grupper) kan mappas om. WITH LOGIN-satsen kan inte användas för att ändra typen av användare, till exempel ändra ett Windows-konto till en SQL Server-inloggning.
Användarens namn byts automatiskt namn till inloggningsnamnet om följande villkor är uppfyllda.
Inget nytt namn har angetts.
Det aktuella namnet skiljer sig från inloggningsnamnet.
Annars kommer användaren inte att byta namn om inte anroparen dessutom anropar NAME-satsen.
Namnet på en användare som mappas till en SQL Server-inloggning, ett certifikat eller en asymmetrisk nyckel får inte innehålla omvänt snedstreck (\).
Försiktighet
Från och med SQL Server 2005 ändrades beteendet för scheman. Det innebär att kod som förutsätter att scheman motsvarar databasanvändare kanske inte längre returnerar korrekta resultat. Gamla katalogvyer, inklusive sysobjects, bör inte användas i en databas där någon av följande DDL-instruktioner någonsin har använts: 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. I sådana databaser måste du i stället använda de nya katalogvyerna. De nya katalogvyerna tar hänsyn till separationen av huvudnamn och scheman som introducerades i SQL Server 2005. Mer information om katalogvyer finns i Katalogvyer (Transact-SQL).
Säkerhet
Not
En användare som har ÄNDRA VALFRI ANVÄNDARE behörighet kan ändra standardschemat för alla användare. En användare som har ett ändrat schema kan omedvetet välja data från fel tabell eller köra kod från fel schema.
Behörigheter
Om du vill ändra namnet på en användare måste ÄNDRA NÅGON ANVÄNDARE behörighet.
För att ändra målinloggningen för en användare krävs behörigheten CONTROL för databasen.
Om du vill ändra användarnamnet för en användare som har behörigheten CONTROL på databasen krävs behörigheten CONTROL i databasen.
För att ändra standardschemat eller språket krävs ALTER- behörighet för användaren. Användare kan ändra sitt eget standardschema eller språk.
Exempel
Alla exempel körs i en användardatabas.
A. Ändra namnet på en databasanvändare
I följande exempel ändras namnet på databasanvändaren Mary5
till Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Ändra standardschemat för en användare
I följande exempel ändras standardschemat för användaren Mary51
till Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO