Delen via


ALTER USER (Transact-SQL)

Wijzigt de naam van een databasegebruiker of wijzigt het standaardschema.

Transact-SQL syntaxisconventies

Notitie

Microsoft Entra ID voorheen Azure Active Directory (Azure AD) werd genoemd.

Een product selecteren

Selecteer in de volgende rij de productnaam waarin u geïnteresseerd bent en alleen de informatie van dat product wordt weergegeven.

* SQL Server *  

 

SQL Server

Syntaxis

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

Argumenten

user_name

Hiermee geeft u de naam op waarmee de gebruiker wordt geïdentificeerd in deze database.

LOGIN = login_name

Hiermee wordt een gebruiker opnieuw toegewezen aan een andere aanmelding door de beveiligings-id (SID) van de gebruiker te wijzigen zodat deze overeenkomt met de SID van de aanmelding.

NAME = new_user_name

Hiermee geeft u de nieuwe naam voor deze gebruiker. new_user_name mag nog niet bestaan in de huidige database.

DEFAULT_SCHEMA = { schema_name | NULL }

Hiermee geeft u het eerste schema op dat door de server wordt doorzocht wanneer de namen van objecten voor deze gebruiker worden omgezet. Als u het standaardschema instelt op NULL, wordt een standaardschema uit een Windows-groep verwijderd. De optie NULL kan niet worden gebruikt met een Windows-gebruiker.

PASSWORD = 'wachtwoord'

van toepassing op: SQL Server 2012 (11.x) en latere versies, Azure SQL Database.

Hiermee geeft u het wachtwoord op voor de gebruiker die wordt gewijzigd. Wachtwoorden zijn hoofdlettergevoelig.

Notitie

Deze optie is alleen beschikbaar voor ingesloten gebruikers. Zie Ingesloten databases en sp_migrate_user_to_contained (Transact-SQL)voor meer informatie.

OLD_PASSWORD ='oldpassword'

van toepassing op: SQL Server 2012 (11.x) en latere versies, Azure SQL Database.

Het huidige gebruikerswachtwoord dat wordt vervangen door 'wachtwoord'. Wachtwoorden zijn hoofdlettergevoelig. OLD_PASSWORD is vereist om een wachtwoord te wijzigen, tenzij u ELKE GEBRUIKER machtiging hebt gewijzigd. Het vereisen van OLD_PASSWORD voorkomt dat gebruikers met IMITATIE machtiging het wachtwoord wijzigen.

Notitie

Deze optie is alleen beschikbaar voor ingesloten gebruikers.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <taalnaam> | <taalalias> }

Van toepassing op: SQL Server 2012 (11.x) en latere versies.

Hiermee geeft u een standaardtaal die aan de gebruiker moet worden toegewezen. Als deze optie is ingesteld op NONE, wordt de standaardtaal ingesteld op de huidige standaardtaal van de database. Als de standaardtaal van de database later wordt gewijzigd, blijft de standaardtaal van de gebruiker ongewijzigd. DEFAULT_LANGUAGE kan de lokale id (lcid), de naam van de taal of de taalalias zijn.

Notitie

Deze optie kan alleen worden opgegeven in een ingesloten database en alleen voor ingesloten gebruikers.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ AAN | UIT ]

van toepassing op: SQL Server 2016 (13.x) en latere versies, Azure SQL Database.

Onderdrukt cryptografische metagegevenscontroles op de server in bulkkopiebewerkingen. Hierdoor kan de gebruiker versleutelde gegevens bulksgewijs kopiëren tussen tabellen of databases, zonder de gegevens te ontsleutelen. De standaardwaarde is UITGESCHAKELD.

Waarschuwing

Onjuist gebruik van deze optie kan leiden tot beschadiging van gegevens. Zie Versleutelde gegevens bulksgewijs laden naar kolommen met always encryptedvoor meer informatie.

Opmerkingen

Het standaardschema is het eerste schema dat door de server wordt doorzocht wanneer de namen van objecten voor deze databasegebruiker worden omgezet. Tenzij anders opgegeven, is het standaardschema de eigenaar van objecten die door deze databasegebruiker zijn gemaakt.

Als de gebruiker een standaardschema heeft, wordt dat standaardschema gebruikt. Als de gebruiker geen standaardschema heeft, maar de gebruiker lid is van een groep met een standaardschema, wordt het standaardschema van de groep gebruikt. Als de gebruiker geen standaardschema heeft en lid is van meer dan één groep, is het standaardschema voor de gebruiker dat van de Windows-groep met de laagste principal_id en een expliciet ingesteld standaardschema. Als er geen standaardschema voor een gebruiker kan worden bepaald, wordt het dbo schema gebruikt.

DEFAULT_SCHEMA kan worden ingesteld op een schema dat momenteel niet in de database voorkomt. Daarom kunt u een DEFAULT_SCHEMA toewijzen aan een gebruiker voordat dat schema wordt gemaakt.

DEFAULT_SCHEMA kan niet worden opgegeven voor een gebruiker die is toegewezen aan een certificaat of een asymmetrische sleutel.

Belangrijk

De waarde van DEFAULT_SCHEMA wordt genegeerd als de gebruiker lid is van de sysadmin vaste serverfunctie. Alle leden van de sysadmin vaste serverfunctie hebben een standaardschema van dbo.

U kunt de naam wijzigen van een gebruiker die is toegewezen aan een Windows-aanmelding of -groep wanneer de SID van de nieuwe gebruikersnaam overeenkomt met de SID die is vastgelegd in de database. Deze controle helpt bij het voorkomen van adresvervalsing van Windows-aanmeldingen in de database.

Met de WITH LOGIN-component kan een gebruiker opnieuw worden toegepast op een andere aanmelding. Gebruikers zonder aanmelding, gebruikers die zijn toegewezen aan een certificaat of gebruikers die zijn toegewezen aan een asymmetrische sleutel, kunnen niet opnieuw worden toegewezen aan deze component. Alleen SQL-gebruikers en Windows-gebruikers (of -groepen) kunnen opnieuw worden toegewezen. De WITH LOGIN-component kan niet worden gebruikt om het type gebruiker te wijzigen, zoals het wijzigen van een Windows-account in een SQL Server-aanmelding.

Er kan een niet-overeenkomende SID optreden wanneer u een database van een andere server hebt hersteld en een databasegebruiker hebt toegewezen aan een SQL Server-aanmelding. U kunt de WITH LOGIN component gebruiken om deze situatie te corrigeren door de gebruikers-SID in de database te vervangen door de aanmeldings-SID van de server.

De naam van de gebruiker wordt automatisch gewijzigd in de aanmeldingsnaam als aan de volgende voorwaarden wordt voldaan.

  • De gebruiker is een Windows-gebruiker.

  • De naam is een Windows-naam (bevat een backslash).

  • Er is geen nieuwe naam opgegeven.

  • De huidige naam verschilt van de aanmeldingsnaam.

Anders wordt de naam van de gebruiker niet gewijzigd, tenzij de aanroeper de NAME component extra aanroept.

De naam van een gebruiker die is toegewezen aan een SQL Server-aanmelding, een certificaat of een asymmetrische sleutel kan het backslash-teken (\) niet bevatten.

Voorzichtigheid

Vanaf SQL Server 2005 is het gedrag van schema's gewijzigd. Als gevolg hiervan retourneert code die ervan uitgaat dat schema's gelijk zijn aan databasegebruikers mogelijk geen juiste resultaten meer retourneren. Oude catalogusweergaven, inclusief sysobjects, mogen niet worden gebruikt in een database waarin een van de volgende DDL-instructies ooit is gebruikt: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, CREATE ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER APPROLE, ALTER AUTHORIZATION. In dergelijke databases moet u in plaats daarvan de nieuwe catalogusweergaven gebruiken. De nieuwe catalogusweergaven houden rekening met de scheiding van principals en schema's die zijn geïntroduceerd in SQL Server 2005. Zie Catalogusweergaven (Transact-SQL)voor meer informatie over catalogusweergaven.

Veiligheid

Notitie

Een gebruiker met ALTER ANY USER machtiging kan het standaardschema van elke gebruiker wijzigen. Een gebruiker die een gewijzigd schema heeft, kan onbewust gegevens uit de verkeerde tabel selecteren of code uit het verkeerde schema uitvoeren.

Machtigingen

Als u de naam van een gebruiker wilt wijzigen, moet u de machtiging ALTER ANY USER.

Als u de doelaanmelding van een gebruiker wilt wijzigen, is de machtiging CONTROL voor de database vereist.

Als u de gebruikersnaam wilt wijzigen van een gebruiker met CONTROL- machtiging voor de database, is de machtiging CONTROL voor de database vereist.

Als u het standaardschema of de standaardtaal wilt wijzigen, moet ALTER machtiging voor de gebruiker zijn. Gebruikers kunnen hun eigen standaardschema of taal wijzigen.

Voorbeelden

Alle voorbeelden worden uitgevoerd in een gebruikersdatabase.

Een. De naam van een databasegebruiker wijzigen

In het volgende voorbeeld wordt de naam van de databasegebruiker Mary5 gewijzigd in Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Het standaardschema van een gebruiker wijzigen

In het volgende voorbeeld wordt het standaardschema van de gebruiker Mary51 gewijzigd in Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Verschillende opties tegelijk wijzigen

Van toepassing op: SQL Server 2012 (11.x) en latere versies.

In het volgende voorbeeld worden verschillende opties gewijzigd voor een ingesloten databasegebruiker in één instructie. Vervang <new strong password here> en <old strong password here> door uw eigen waarden.

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. Een niet-overeenkomende SID corrigeren

In het volgende voorbeeld wordt de gebruikers-SID in de database gecorrigeerd zodat deze overeenkomt met de SID op de server voor een geverifieerde SQL Server-aanmelding.

ALTER USER Mai
WITH LOGIN = Mai;
GO

* Azure SQL Database en Microsoft Fabric *

 

Azure SQL Database en Microsoft Fabric

Syntaxis

Syntaxis voor Azure SQL Database

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

Syntaxis voor SQL-database 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
[;]

Syntaxis voor Microsoft Fabric Warehouse

-- Syntax for Fabric Data Warehouse

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

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

Argumenten

user_name

Hiermee geeft u de naam op waarmee de gebruiker wordt geïdentificeerd in deze database.

LOGIN = login_name

Hiermee wordt een gebruiker opnieuw toegewezen aan een andere aanmelding door de beveiligings-id (SID) van de gebruiker te wijzigen zodat deze overeenkomt met de SID van de aanmelding.

Als de instructie ALTER USER de enige instructie in een SQL-batch is, ondersteunt Azure SQL Database de WITH LOGIN-component. Als de instructie ALTER USER niet de enige instructie in een SQL-batch is of wordt uitgevoerd in dynamische SQL, wordt de WITH LOGIN-component niet ondersteund.

NAME = new_user_name

Hiermee geeft u de nieuwe naam voor deze gebruiker. new_user_name mag nog niet bestaan in de huidige database.

DEFAULT_SCHEMA = { schema_name | NULL }

Hiermee geeft u het eerste schema op dat door de server wordt doorzocht wanneer de namen van objecten voor deze gebruiker worden omgezet.

Als u het standaardschema instelt op NULL verwijdert u een standaardschema van een gebruiker die is gemaakt voor een Microsoft Entra-id-groep. De optie NULL kan niet worden gebruikt met een ander type gebruiker.

PASSWORD = 'wachtwoord'

is van toepassing op: Azure SQL Database.

Hiermee geeft u het wachtwoord op voor de gebruiker die wordt gewijzigd. Wachtwoorden zijn hoofdlettergevoelig.

Notitie

Deze optie is alleen beschikbaar voor ingesloten gebruikers. Zie Ingesloten databases en sp_migrate_user_to_contained (Transact-SQL)voor meer informatie.

OLD_PASSWORD ='oldpassword'

is van toepassing op: Azure SQL Database.

Het huidige gebruikerswachtwoord dat wordt vervangen door 'wachtwoord'. Wachtwoorden zijn hoofdlettergevoelig. OLD_PASSWORD is vereist om een wachtwoord te wijzigen, tenzij u ELKE GEBRUIKER machtiging hebt gewijzigd. Het vereisen van OLD_PASSWORD voorkomt dat gebruikers met IMITATIE machtiging het wachtwoord wijzigen.

Notitie

Deze optie is alleen beschikbaar voor ingesloten gebruikers.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ AAN | UIT ]

van toepassing op: SQL Server 2016 (13.x) en latere versies, Azure SQL Database.

Onderdrukt cryptografische metagegevenscontroles op de server in bulkkopiebewerkingen. Hierdoor kan de gebruiker versleutelde gegevens bulksgewijs kopiëren tussen tabellen of databases, zonder de gegevens te ontsleutelen. De standaardwaarde is UITGESCHAKELD.

Waarschuwing

Onjuist gebruik van deze optie kan leiden tot beschadiging van gegevens. Zie Versleutelde gegevens bulksgewijs laden naar kolommen met always encryptedvoor meer informatie.

Opmerkingen

Het standaardschema is het eerste schema dat door de server wordt doorzocht wanneer de namen van objecten voor deze databasegebruiker worden omgezet. Tenzij anders opgegeven, is het standaardschema de eigenaar van objecten die door deze databasegebruiker zijn gemaakt.

Als de gebruiker een standaardschema heeft, wordt dat standaardschema gebruikt. Als de gebruiker geen standaardschema heeft, maar de gebruiker lid is van een groep met een standaardschema, wordt het standaardschema van de groep gebruikt. Als de gebruiker geen standaardschema heeft en lid is van meer dan één groep, is het standaardschema voor de gebruiker dat van de groep met de laagste principal_id en een expliciet ingesteld standaardschema. Als er geen standaardschema voor een gebruiker kan worden bepaald, wordt het dbo schema gebruikt.

DEFAULT_SCHEMA kan worden ingesteld op een schema dat momenteel niet in de database voorkomt. Daarom kunt u een DEFAULT_SCHEMA toewijzen aan een gebruiker voordat dat schema wordt gemaakt.

DEFAULT_SCHEMA kan niet worden opgegeven voor een gebruiker die is toegewezen aan een certificaat of een asymmetrische sleutel.

Belangrijk

De waarde van DEFAULT_SCHEMA wordt genegeerd als de gebruiker lid is van de sysadmin vaste serverfunctie. Alle leden van de sysadmin vaste serverfunctie hebben een standaardschema van dbo.

Met de WITH LOGIN-component kan een gebruiker opnieuw worden toegepast op een andere aanmelding. Gebruikers zonder aanmelding, gebruikers die zijn toegewezen aan een certificaat of gebruikers die zijn toegewezen aan een asymmetrische sleutel, kunnen niet opnieuw worden toegewezen aan deze component. Alleen SQL-gebruikers kunnen opnieuw worden toegewezen. De WITH LOGIN-component kan niet worden gebruikt om het type gebruiker te wijzigen.

De naam van de gebruiker wordt automatisch gewijzigd in de aanmeldingsnaam als aan de volgende voorwaarden wordt voldaan.

  • Er is geen nieuwe naam opgegeven.

  • De huidige naam verschilt van de aanmeldingsnaam.

Anders wordt de naam van de gebruiker niet gewijzigd, tenzij de aanroeper de NAME component extra aanroept.

De naam van een gebruiker die is toegewezen aan een SQL Server-aanmelding, een certificaat of een asymmetrische sleutel kan het backslash-teken (\) niet bevatten.

Voorzichtigheid

Vanaf SQL Server 2005 is het gedrag van schema's gewijzigd. Als gevolg hiervan retourneert code die ervan uitgaat dat schema's gelijk zijn aan databasegebruikers mogelijk geen juiste resultaten meer retourneren. Oude catalogusweergaven, inclusief sysobjects, mogen niet worden gebruikt in een database waarin een van de volgende DDL-instructies ooit is gebruikt: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, CREATE ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER APPROLE, ALTER AUTHORIZATION. In dergelijke databases moet u in plaats daarvan de nieuwe catalogusweergaven gebruiken. De nieuwe catalogusweergaven houden rekening met de scheiding van principals en schema's die zijn geïntroduceerd in SQL Server 2005. Zie Catalogusweergaven (Transact-SQL)voor meer informatie over catalogusweergaven.

Fabric SQL-database

Zie voor meer informatie:

Infrastructuurwarehouse

In Microsoft Fabric Warehouse is ALTER USER beperkt tot het instellen van het standaardschema. Alle andere argumenten die vaak zijn gekoppeld aan ALTER USER in SQL of andere producten, worden niet ondersteund en retourneren een fout.

In Microsoft Fabric Warehouse is de sorteringsnaam hoofdlettergevoelig.

Het standaardschema is het eerste schema dat door de server wordt doorzocht wanneer de namen van objecten voor deze databasegebruiker worden omgezet. Tenzij anders opgegeven, is het standaardschema de eigenaar van objecten die door deze databasegebruiker zijn gemaakt.

Als een gebruiker een standaardschema heeft, wordt dat schema gebruikt. Als er geen standaardschema is opgegeven, wordt het dbo-schema toegepast. De database-engine probeert eerst objecten op te lossen in het standaardschema van de gebruiker. Als er geen overeenkomend object wordt gevonden, wordt het dbo-schema gecontroleerd.

DEFAULT_SCHEMA kan worden ingesteld op een schema dat momenteel niet in de database bestaat. Daarom kunt u een DEFAULT_SCHEMA toewijzen aan een gebruiker voordat dat schema wordt gemaakt.

Zie voor meer informatie:

Veiligheid

Notitie

Een gebruiker met ALTER ANY USER machtiging kan het standaardschema van elke gebruiker wijzigen. Een gebruiker die een gewijzigd schema heeft, kan onbewust gegevens uit de verkeerde tabel selecteren of code uit het verkeerde schema uitvoeren.

Machtigingen

Als u de naam van een gebruiker wilt wijzigen, moet u de machtiging ALTER ANY USER.

Als u de doelaanmelding van een gebruiker wilt wijzigen, is de machtiging CONTROL voor de database vereist.

Als u de gebruikersnaam wilt wijzigen van een gebruiker met CONTROL- machtiging voor de database, is de machtiging CONTROL voor de database vereist.

Als u het standaardschema of de standaardtaal wilt wijzigen, moet ALTER machtiging voor de gebruiker zijn. Gebruikers kunnen hun eigen standaardschema of taal wijzigen.

Rolmachtigingen voor fabricwarehouse

Gebruikers met een minimum van inzender-rollidmaatschap in de werkruimte kunnen het STANDAARDSCHEMA van elke gebruiker in Fabric Data Warehouse wijzigen.

Gebruikers met viewer-rollidmaatschap in de werkruimte kunnen hun eigen standaardschema niet wijzigen, tenzij een gebruiker met verhoogde toegang deze machtiging verleent.

Gebruikers die zijn opgenomen in de rol VIEWER op werkruimteniveau, vereisen de machtiging ALTER ANY USER om het standaardschema van andere gebruikers te wijzigen.

Voorbeelden

Alle voorbeelden worden uitgevoerd in een gebruikersdatabase.

Een. De naam van een databasegebruiker wijzigen

In het volgende voorbeeld wordt de naam van de databasegebruiker Mary5 gewijzigd in Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Het standaardschema van een gebruiker wijzigen

In het volgende voorbeeld wordt het standaardschema van de gebruiker Mary51 gewijzigd in Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Verschillende opties tegelijk wijzigen

In het volgende voorbeeld worden verschillende opties gewijzigd voor een ingesloten databasegebruiker in één instructie. Vervang <new strong password here> en <old strong password here> door uw eigen waarden.

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

D. Het standaardschema van een gebruiker wijzigen

In het volgende voorbeeld wordt het standaardschema van de gebruiker Mary51 gewijzigd in Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

* SQL Managed Instance *

 

Azure SQL Managed Instance

Syntaxis

Belangrijk

Alleen de volgende opties worden ondersteund voor Azure SQL Managed Instance bij het toepassen op gebruikers met Microsoft Entra-aanmeldingen: DEFAULT_SCHEMA = { schema_name | NULL } en DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }

Er is een nieuwe syntaxisextensie toegevoegd om gebruikers in een database die is gemigreerd naar Azure SQL Managed Instance, opnieuw toe te kennen. Met de syntaxis ALTER USER kunnen databasegebruikers in een federatief en gesynchroniseerd domein worden toegewezen aan Microsoft Entra-aanmeldingen.

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

Argumenten

user_name

Hiermee geeft u de naam op waarmee de gebruiker wordt geïdentificeerd in deze database.

LOGIN = login_name

Hiermee wordt een gebruiker opnieuw toegewezen aan een andere aanmelding door de beveiligings-id (SID) van de gebruiker te wijzigen zodat deze overeenkomt met de SID van de aanmelding.

Als de instructie ALTER USER de enige instructie in een SQL-batch is, ondersteunt Azure SQL Database de WITH LOGIN-component. Als de instructie ALTER USER niet de enige instructie in een SQL-batch is of wordt uitgevoerd in dynamische SQL, wordt de WITH LOGIN-component niet ondersteund.

NAME = new_user_name

Hiermee geeft u de nieuwe naam voor deze gebruiker. new_user_name mag nog niet bestaan in de huidige database.

DEFAULT_SCHEMA = { schema_name | NULL }

Hiermee geeft u het eerste schema op dat door de server wordt doorzocht wanneer de namen van objecten voor deze gebruiker worden omgezet. Als u het standaardschema instelt op NULL, wordt een standaardschema uit een Windows-groep verwijderd. De optie NULL kan niet worden gebruikt met een Windows-gebruiker.

PASSWORD = 'wachtwoord'

Hiermee geeft u het wachtwoord op voor de gebruiker die wordt gewijzigd. Wachtwoorden zijn hoofdlettergevoelig.

Notitie

Deze optie is alleen beschikbaar voor ingesloten gebruikers. Zie Ingesloten databases en sp_migrate_user_to_contained (Transact-SQL)voor meer informatie.

OLD_PASSWORD = 'oldpassword'

Het huidige gebruikerswachtwoord dat wordt vervangen door 'wachtwoord'. Wachtwoorden zijn hoofdlettergevoelig. OLD_PASSWORD is vereist om een wachtwoord te wijzigen, tenzij u ELKE GEBRUIKER machtiging hebt gewijzigd. Het vereisen van OLD_PASSWORD voorkomt dat gebruikers met IMITATIE machtiging het wachtwoord wijzigen.

Notitie

Deze optie is alleen beschikbaar voor ingesloten gebruikers.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <taalnaam> | <taalalias> }

Hiermee geeft u een standaardtaal die aan de gebruiker moet worden toegewezen. Als deze optie is ingesteld op NONE, wordt de standaardtaal ingesteld op de huidige standaardtaal van de database. Als de standaardtaal van de database later wordt gewijzigd, blijft de standaardtaal van de gebruiker ongewijzigd. DEFAULT_LANGUAGE kan de lokale id (lcid), de naam van de taal of de taalalias zijn.

Notitie

Deze optie kan alleen worden opgegeven in een ingesloten database en alleen voor ingesloten gebruikers.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ AAN | UIT ]

Onderdrukt cryptografische metagegevenscontroles op de server in bulkkopiebewerkingen. Hierdoor kan de gebruiker versleutelde gegevens bulksgewijs kopiëren tussen tabellen of databases, zonder de gegevens te ontsleutelen. De standaardwaarde is UITGESCHAKELD.

Waarschuwing

Onjuist gebruik van deze optie kan leiden tot beschadiging van gegevens. Zie Versleutelde gegevens bulksgewijs laden naar kolommen met always encryptedvoor meer informatie.

Opmerkingen

Het standaardschema is het eerste schema dat door de server wordt doorzocht wanneer de namen van objecten voor deze databasegebruiker worden omgezet. Tenzij anders opgegeven, is het standaardschema de eigenaar van objecten die door deze databasegebruiker zijn gemaakt.

Als de gebruiker een standaardschema heeft, wordt dat standaardschema gebruikt. Als de gebruiker geen standaardschema heeft, maar de gebruiker lid is van een groep met een standaardschema, wordt het standaardschema van de groep gebruikt. Als de gebruiker geen standaardschema heeft en lid is van meer dan één groep, is het standaardschema voor de gebruiker dat van de Windows-groep met de laagste principal_id en een expliciet ingesteld standaardschema. Als er geen standaardschema voor een gebruiker kan worden bepaald, wordt het dbo schema gebruikt.

DEFAULT_SCHEMA kan worden ingesteld op een schema dat momenteel niet in de database voorkomt. Daarom kunt u een DEFAULT_SCHEMA toewijzen aan een gebruiker voordat dat schema wordt gemaakt.

DEFAULT_SCHEMA kan niet worden opgegeven voor een gebruiker die is toegewezen aan een certificaat of een asymmetrische sleutel.

Belangrijk

De waarde van DEFAULT_SCHEMA wordt genegeerd als de gebruiker lid is van de sysadmin vaste serverfunctie. Alle leden van de sysadmin vaste serverfunctie hebben een standaardschema van dbo.

U kunt de naam wijzigen van een gebruiker die is toegewezen aan een Windows-aanmelding of -groep wanneer de SID van de nieuwe gebruikersnaam overeenkomt met de SID die is vastgelegd in de database. Deze controle helpt bij het voorkomen van adresvervalsing van Windows-aanmeldingen in de database.

Met de WITH LOGIN-component kan een gebruiker opnieuw worden toegepast op een andere aanmelding. Gebruikers zonder aanmelding, gebruikers die zijn toegewezen aan een certificaat of gebruikers die zijn toegewezen aan een asymmetrische sleutel, kunnen niet opnieuw worden toegewezen aan deze component. Alleen SQL-gebruikers en Windows-gebruikers (of -groepen) kunnen opnieuw worden toegewezen. De WITH LOGIN-component kan niet worden gebruikt om het type gebruiker te wijzigen, zoals het wijzigen van een Windows-account in een SQL Server-aanmelding. De enige uitzondering is wanneer u een Windows-gebruiker wijzigt in een Microsoft Entra-gebruiker.

Notitie

De volgende regels zijn niet van toepassing op Windows-gebruikers in Azure SQL Managed Instance, omdat het maken van Windows-aanmeldingen in Azure SQL Managed Instance niet wordt ondersteund. De optie WITH LOGIN kan alleen worden gebruikt als Microsoft Entra-aanmeldingen aanwezig zijn.

De naam van de gebruiker wordt automatisch gewijzigd in de aanmeldingsnaam als aan de volgende voorwaarden wordt voldaan.

  • De gebruiker is een Windows-gebruiker.

  • De naam is een Windows-naam (bevat een backslash).

  • Er is geen nieuwe naam opgegeven.

  • De huidige naam verschilt van de aanmeldingsnaam.

Anders wordt de naam van de gebruiker niet gewijzigd, tenzij de aanroeper de NAME component extra aanroept.

De naam van een gebruiker die is toegewezen aan een SQL Server-aanmelding, een certificaat of een asymmetrische sleutel kan het backslash-teken (\) niet bevatten.

Voorzichtigheid

Vanaf SQL Server 2005 is het gedrag van schema's gewijzigd. Als gevolg hiervan retourneert code die ervan uitgaat dat schema's gelijk zijn aan databasegebruikers mogelijk geen juiste resultaten meer retourneren. Oude catalogusweergaven, inclusief sysobjects, mogen niet worden gebruikt in een database waarin een van de volgende DDL-instructies ooit is gebruikt: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, CREATE ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER APPROLE, ALTER AUTHORIZATION. In dergelijke databases moet u in plaats daarvan de nieuwe catalogusweergaven gebruiken. De nieuwe catalogusweergaven houden rekening met de scheiding van principals en schema's die zijn geïntroduceerd in SQL Server 2005. Zie Catalogusweergaven (Transact-SQL)voor meer informatie over catalogusweergaven.

Opmerkingen voor Windows-gebruikers in ON-premises SQL gemigreerd naar Azure SQL Managed Instance

Deze opmerkingen zijn van toepassing op verificatie als Windows-gebruikers die zijn gefedereerd en gesynchroniseerd met Microsoft Entra-id.

  • Validatie van Windows-gebruikers of -groepen die zijn toegewezen aan Microsoft Entra-id wordt standaard uitgevoerd via Graph API in alle versies van de ALTER USER-syntaxis die wordt gebruikt voor migratiedoeleinden.
  • On-premises gebruikers met een alias (gebruik een andere naam dan het oorspronkelijke Windows-account) behouden de aliasnaam.
  • Voor Microsoft Entra-verificatie is de parameter LOGIN alleen van toepassing op Azure SQL Managed Instance en kan deze niet worden gebruikt met SQL Database.
  • Gebruik de volgende opdracht om aanmeldingen voor Microsoft Entra-principals weer te geven: SELECT * FROM sys.server_principals;.
  • Controleer of het aangegeven type aanmelding is E of X.
  • De optie WACHTWOORD kan niet worden gebruikt voor Microsoft Entra-gebruikers.
  • In alle migratiescenario's worden de rollen en machtigingen van Windows-gebruikers of -groepen automatisch overgebracht naar de nieuwe Microsoft Entra-gebruikers of -groepen.
  • FROM EXTERNAL PROVIDER is bedoeld voor het wijzigen van Windows-gebruikers en -groepen van on-premises SQL naar Microsoft Entra-gebruikers en -groepen. Het Windows-domein moet worden gefedereerd met Microsoft Entra-id en alle Windows-domeinleden moeten bestaan in Microsoft Entra-id wanneer u deze extensie gebruikt. De FROM EXTERNAL PROVIDER syntaxis is van toepassing op Azure SQL Managed Instance en moet worden gebruikt voor het geval Windows-gebruikers geen aanmeldingen hebben op het oorspronkelijke SQL-exemplaar en moeten worden toegewezen aan zelfstandige Microsoft Entra-databasegebruikers.
  • In dit geval kan de toegestane user_name het volgende zijn:
  • Een Windows-gebruiker (domain\user).
  • Een Windows-groep (MyWindowsGroup).
  • Een Windows-alias (MyWindowsAlias).
  • Het resultaat van de opdracht ALTER vervangt de oude user_name door de bijbehorende naam die in Microsoft Entra-id is gevonden op basis van de oorspronkelijke SID van de oude user_name. De gewijzigde naam wordt vervangen en opgeslagen in de metagegevens van de database:
  • (domain\user) wordt vervangen door Microsoft Entra user@domain.com.
  • (domain\MyWindowsGroup) wordt vervangen door de Microsoft Entra-groep.
  • (MyWindowsAlias) blijft ongewijzigd, maar de SID van deze gebruiker wordt gecontroleerd in Microsoft Entra ID.

Notitie

Als de SID van de oorspronkelijke gebruiker die is geconverteerd naar object_ID niet kan worden gevonden in de Microsoft Entra ID-tenant, mislukt de opdracht ALTER USER.

  • Gebruik de volgende opdracht om gewijzigde gebruikers weer te geven: SELECT * FROM sys.database_principals;
  • Controleer het aangegeven type E of Xvan de gebruiker.
  • Wanneer NAME wordt gebruikt om Windows-gebruikers te migreren naar Microsoft Entra-gebruikers, gelden de volgende beperkingen:
    • Er moet een geldige AANMELDING worden opgegeven.
    • De NAAM wordt ingecheckt in de Microsoft Entra ID-tenant en kan alleen het volgende zijn:
      • De naam van de AANMELDING.
      • Een alias: de naam kan niet bestaan in Microsoft Entra-id.
      • In alle andere gevallen mislukt de syntaxis.

Veiligheid

Notitie

Een gebruiker met ALTER ANY USER machtiging kan het standaardschema van elke gebruiker wijzigen. Een gebruiker die een gewijzigd schema heeft, kan onbewust gegevens uit de verkeerde tabel selecteren of code uit het verkeerde schema uitvoeren.

Machtigingen

Als u de naam van een gebruiker wilt wijzigen, moet u de machtiging ALTER ANY USER.

Als u de doelaanmelding van een gebruiker wilt wijzigen, is de machtiging CONTROL voor de database vereist.

Als u de gebruikersnaam wilt wijzigen van een gebruiker met CONTROL- machtiging voor de database, is de machtiging CONTROL voor de database vereist.

Als u het standaardschema of de standaardtaal wilt wijzigen, moet ALTER machtiging voor de gebruiker zijn. Gebruikers kunnen hun eigen standaardschema of taal wijzigen.

Voorbeelden

Alle voorbeelden worden uitgevoerd in een gebruikersdatabase.

Een. De naam van een databasegebruiker wijzigen

In het volgende voorbeeld wordt de naam van de databasegebruiker Mary5 gewijzigd in Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Het standaardschema van een gebruiker wijzigen

In het volgende voorbeeld wordt het standaardschema van de gebruiker Mary51 gewijzigd in Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Verschillende opties tegelijk wijzigen

In het volgende voorbeeld worden verschillende opties gewijzigd voor een ingesloten databasegebruiker in één instructie. Vervang <new strong password here> en <old strong password here> door uw eigen waarden.

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. De gebruiker in de database toewijzen aan een Microsoft Entra-aanmelding na de migratie

In het volgende voorbeeld wordt de gebruiker, westus/joe, opnieuw toegewezen aan een Microsoft Entra-gebruiker joe@westus.com. Dit voorbeeld is bedoeld voor aanmeldingen die al bestaan in het beheerde exemplaar. Dit moet worden uitgevoerd nadat u een databasemigratie naar Azure SQL Managed Instance hebt voltooid en de Microsoft Entra-aanmelding wilt gebruiken om te verifiëren.

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

E. Een oude Windows-gebruiker in de database toewijzen zonder zich aan te melden bij Azure SQL Managed Instance aan een Microsoft Entra-gebruiker

In het volgende voorbeeld wordt de gebruiker, westus/joe zonder aanmelding, opnieuw toegewezen aan een Microsoft Entra-gebruiker, joe@westus.com. De federatieve gebruiker moet bestaan in Microsoft Entra-id.

ALTER USER [westus/joe] FROM EXTERNAL PROVIDER

F. De gebruikersalias toewijzen aan een bestaande Microsoft Entra-aanmelding

In het volgende voorbeeld wordt de gebruikersnaam opnieuw westus\joe om te joe_alias. De bijbehorende Microsoft Entra-aanmelding in dit geval is joe@westus.com.

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

G. Een Windows-groep toewijzen die is gemigreerd in Azure SQL Managed Instance naar een Microsoft Entra-groep

In het volgende voorbeeld wordt de oude on-premises groep opnieuw toegewezen westus\mygroup aan een Microsoft Entra-groep mygroup in het beheerde exemplaar. De groep moet bestaan in De Microsoft Entra-id.

ALTER USER [westus\mygroup] WITH LOGIN = mygroup;

* Azure Synapse
Analyse *

 

Azure Synapse Analytics

Syntaxis

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

Argumenten

user_name

Hiermee geeft u de naam op waarmee de gebruiker wordt geïdentificeerd in deze database.

LOGIN = login_name

Hiermee wordt een gebruiker opnieuw toegewezen aan een andere aanmelding door de beveiligings-id (SID) van de gebruiker te wijzigen zodat deze overeenkomt met de SID van de aanmelding.

Als de instructie ALTER USER de enige instructie in een SQL-batch is, ondersteunt Azure SQL Database de WITH LOGIN-component. Als de instructie ALTER USER niet de enige instructie in een SQL-batch is of wordt uitgevoerd in dynamische SQL, wordt de WITH LOGIN-component niet ondersteund.

NAME = new_user_name

Hiermee geeft u de nieuwe naam voor deze gebruiker. new_user_name mag nog niet bestaan in de huidige database.

DEFAULT_SCHEMA = { schema_name | NULL }

Hiermee geeft u het eerste schema op dat door de server wordt doorzocht wanneer de namen van objecten voor deze gebruiker worden omgezet. Als u het standaardschema instelt op NULL, wordt een standaardschema uit een Windows-groep verwijderd. De optie NULL kan niet worden gebruikt met een Windows-gebruiker.

Opmerkingen

Het standaardschema is het eerste schema dat door de server wordt doorzocht wanneer de namen van objecten voor deze databasegebruiker worden omgezet. Tenzij anders opgegeven, is het standaardschema de eigenaar van objecten die door deze databasegebruiker zijn gemaakt.

Als de gebruiker een standaardschema heeft, wordt dat standaardschema gebruikt. Als de gebruiker geen standaardschema heeft, maar de gebruiker lid is van een groep met een standaardschema, wordt het standaardschema van de groep gebruikt. Als de gebruiker geen standaardschema heeft en lid is van meer dan één groep, is het standaardschema voor de gebruiker dat van de Windows-groep met de laagste principal_id en een expliciet ingesteld standaardschema. Als er geen standaardschema voor een gebruiker kan worden bepaald, wordt het dbo schema gebruikt.

DEFAULT_SCHEMA kan worden ingesteld op een schema dat momenteel niet in de database voorkomt. Daarom kunt u een DEFAULT_SCHEMA toewijzen aan een gebruiker voordat dat schema wordt gemaakt.

DEFAULT_SCHEMA kan niet worden opgegeven voor een gebruiker die is toegewezen aan een certificaat of een asymmetrische sleutel.

Belangrijk

De waarde van DEFAULT_SCHEMA wordt genegeerd als de gebruiker lid is van de sysadmin vaste serverfunctie. Alle leden van de sysadmin vaste serverfunctie hebben een standaardschema van dbo.

Met de WITH LOGIN-component kan een gebruiker opnieuw worden toegepast op een andere aanmelding. Gebruikers zonder aanmelding, gebruikers die zijn toegewezen aan een certificaat of gebruikers die zijn toegewezen aan een asymmetrische sleutel, kunnen niet opnieuw worden toegewezen aan deze component. Alleen SQL-gebruikers en Windows-gebruikers (of -groepen) kunnen opnieuw worden toegewezen. De WITH LOGIN-component kan niet worden gebruikt om het type gebruiker te wijzigen, zoals het wijzigen van een Windows-account in een SQL Server-aanmelding.

De naam van de gebruiker wordt automatisch gewijzigd in de aanmeldingsnaam als aan de volgende voorwaarden wordt voldaan.

  • Er is geen nieuwe naam opgegeven.

  • De huidige naam verschilt van de aanmeldingsnaam.

Anders wordt de naam van de gebruiker niet gewijzigd, tenzij de aanroeper de NAME component extra aanroept.

De naam van een gebruiker die is toegewezen aan een SQL Server-aanmelding, een certificaat of een asymmetrische sleutel kan het backslash-teken (\) niet bevatten.

Voorzichtigheid

Vanaf SQL Server 2005 is het gedrag van schema's gewijzigd. Als gevolg hiervan retourneert code die ervan uitgaat dat schema's gelijk zijn aan databasegebruikers mogelijk geen juiste resultaten meer retourneren. Oude catalogusweergaven, inclusief sysobjects, mogen niet worden gebruikt in een database waarin een van de volgende DDL-instructies ooit is gebruikt: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, CREATE ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER APPROLE, ALTER AUTHORIZATION. In dergelijke databases moet u in plaats daarvan de nieuwe catalogusweergaven gebruiken. De nieuwe catalogusweergaven houden rekening met de scheiding van principals en schema's die zijn geïntroduceerd in SQL Server 2005. Zie Catalogusweergaven (Transact-SQL)voor meer informatie over catalogusweergaven.

Veiligheid

Notitie

Een gebruiker met ALTER ANY USER machtiging kan het standaardschema van elke gebruiker wijzigen. Een gebruiker die een gewijzigd schema heeft, kan onbewust gegevens uit de verkeerde tabel selecteren of code uit het verkeerde schema uitvoeren.

Machtigingen

Als u de naam van een gebruiker wilt wijzigen, moet u de machtiging ALTER ANY USER.

Als u de doelaanmelding van een gebruiker wilt wijzigen, is de machtiging CONTROL voor de database vereist.

Als u de gebruikersnaam wilt wijzigen van een gebruiker met CONTROL- machtiging voor de database, is de machtiging CONTROL voor de database vereist.

Als u het standaardschema of de standaardtaal wilt wijzigen, moet ALTER machtiging voor de gebruiker zijn. Gebruikers kunnen hun eigen standaardschema of taal wijzigen.

Voorbeelden

Alle voorbeelden worden uitgevoerd in een gebruikersdatabase.

Een. De naam van een databasegebruiker wijzigen

In het volgende voorbeeld wordt de naam van de databasegebruiker Mary5 gewijzigd in Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Het standaardschema van een gebruiker wijzigen

In het volgende voorbeeld wordt het standaardschema van de gebruiker Mary51 gewijzigd in Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

* Analyse
Platform System (PDW) *

 

Analyseplatformsysteem

Syntaxis

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

Argumenten

user_name

Hiermee geeft u de naam op waarmee de gebruiker wordt geïdentificeerd in deze database.

LOGIN = login_name

Hiermee wordt een gebruiker opnieuw toegewezen aan een andere aanmelding door de beveiligings-id (SID) van de gebruiker te wijzigen zodat deze overeenkomt met de SID van de aanmelding.

Als de instructie ALTER USER de enige instructie in een SQL-batch is, ondersteunt Azure SQL Database de WITH LOGIN-component. Als de instructie ALTER USER niet de enige instructie in een SQL-batch is of wordt uitgevoerd in dynamische SQL, wordt de WITH LOGIN-component niet ondersteund.

NAME = new_user_name

Hiermee geeft u de nieuwe naam voor deze gebruiker. new_user_name mag nog niet bestaan in de huidige database.

DEFAULT_SCHEMA = { schema_name | NULL }

Hiermee geeft u het eerste schema op dat door de server wordt doorzocht wanneer de namen van objecten voor deze gebruiker worden omgezet. Als u het standaardschema instelt op NULL, wordt een standaardschema uit een Windows-groep verwijderd. De optie NULL kan niet worden gebruikt met een Windows-gebruiker.

Opmerkingen

Het standaardschema is het eerste schema dat door de server wordt doorzocht wanneer de namen van objecten voor deze databasegebruiker worden omgezet. Tenzij anders opgegeven, is het standaardschema de eigenaar van objecten die door deze databasegebruiker zijn gemaakt.

Als de gebruiker een standaardschema heeft, wordt dat standaardschema gebruikt. Als de gebruiker geen standaardschema heeft, maar de gebruiker lid is van een groep met een standaardschema, wordt het standaardschema van de groep gebruikt. Als de gebruiker geen standaardschema heeft en lid is van meer dan één groep, is het standaardschema voor de gebruiker dat van de Windows-groep met de laagste principal_id en een expliciet ingesteld standaardschema. Als er geen standaardschema voor een gebruiker kan worden bepaald, wordt het dbo schema gebruikt.

DEFAULT_SCHEMA kan worden ingesteld op een schema dat momenteel niet in de database voorkomt. Daarom kunt u een DEFAULT_SCHEMA toewijzen aan een gebruiker voordat dat schema wordt gemaakt.

DEFAULT_SCHEMA kan niet worden opgegeven voor een gebruiker die is toegewezen aan een certificaat of een asymmetrische sleutel.

Belangrijk

De waarde van DEFAULT_SCHEMA wordt genegeerd als de gebruiker lid is van de sysadmin vaste serverfunctie. Alle leden van de sysadmin vaste serverfunctie hebben een standaardschema van dbo.

Met de WITH LOGIN-component kan een gebruiker opnieuw worden toegepast op een andere aanmelding. Gebruikers zonder aanmelding, gebruikers die zijn toegewezen aan een certificaat of gebruikers die zijn toegewezen aan een asymmetrische sleutel, kunnen niet opnieuw worden toegewezen aan deze component. Alleen SQL-gebruikers en Windows-gebruikers (of -groepen) kunnen opnieuw worden toegewezen. De WITH LOGIN-component kan niet worden gebruikt om het type gebruiker te wijzigen, zoals het wijzigen van een Windows-account in een SQL Server-aanmelding.

De naam van de gebruiker wordt automatisch gewijzigd in de aanmeldingsnaam als aan de volgende voorwaarden wordt voldaan.

  • Er is geen nieuwe naam opgegeven.

  • De huidige naam verschilt van de aanmeldingsnaam.

Anders wordt de naam van de gebruiker niet gewijzigd, tenzij de aanroeper de NAME component extra aanroept.

De naam van een gebruiker die is toegewezen aan een SQL Server-aanmelding, een certificaat of een asymmetrische sleutel kan het backslash-teken (\) niet bevatten.

Voorzichtigheid

Vanaf SQL Server 2005 is het gedrag van schema's gewijzigd. Als gevolg hiervan retourneert code die ervan uitgaat dat schema's gelijk zijn aan databasegebruikers mogelijk geen juiste resultaten meer retourneren. Oude catalogusweergaven, inclusief sysobjects, mogen niet worden gebruikt in een database waarin een van de volgende DDL-instructies ooit is gebruikt: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, CREATE ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER APPROLE, ALTER AUTHORIZATION. In dergelijke databases moet u in plaats daarvan de nieuwe catalogusweergaven gebruiken. De nieuwe catalogusweergaven houden rekening met de scheiding van principals en schema's die zijn geïntroduceerd in SQL Server 2005. Zie Catalogusweergaven (Transact-SQL)voor meer informatie over catalogusweergaven.

Veiligheid

Notitie

Een gebruiker met ALTER ANY USER machtiging kan het standaardschema van elke gebruiker wijzigen. Een gebruiker die een gewijzigd schema heeft, kan onbewust gegevens uit de verkeerde tabel selecteren of code uit het verkeerde schema uitvoeren.

Machtigingen

Als u de naam van een gebruiker wilt wijzigen, moet u de machtiging ALTER ANY USER.

Als u de doelaanmelding van een gebruiker wilt wijzigen, is de machtiging CONTROL voor de database vereist.

Als u de gebruikersnaam wilt wijzigen van een gebruiker met CONTROL- machtiging voor de database, is de machtiging CONTROL voor de database vereist.

Als u het standaardschema of de standaardtaal wilt wijzigen, moet ALTER machtiging voor de gebruiker zijn. Gebruikers kunnen hun eigen standaardschema of taal wijzigen.

Voorbeelden

Alle voorbeelden worden uitgevoerd in een gebruikersdatabase.

Een. De naam van een databasegebruiker wijzigen

In het volgende voorbeeld wordt de naam van de databasegebruiker Mary5 gewijzigd in Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Het standaardschema van een gebruiker wijzigen

In het volgende voorbeeld wordt het standaardschema van de gebruiker Mary51 gewijzigd in Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO