Partage via


ALTER USER (Transact-SQL)

Renomme un utilisateur de base de données ou change son schéma par défaut.

Conventions de la syntaxe Transact-SQL

Remarque

Microsoft Entra ID s'appelait Azure Active Directory (Azure AD) jusqu'à une date récente.

Sélectionner un produit

Sur la ligne suivante, sélectionnez le nom du produit qui vous intéresse afin d’afficher uniquement les informations qui le concernent.

* SQL Server *  

 

SQL Server

Syntaxe

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

Arguments

user_name

Spécifie le nom qui identifie l'utilisateur dans cette base de données.

LOGIN = login_name

Remappe un utilisateur à une autre connexion en modifiant l'identificateur de sécurité (SID) de l'utilisateur de manière à ce qu'il corresponde au SID de la connexion.

NAME = new_user_name

Spécifie le nouveau nom de cet utilisateur. new_user_name ne doit pas déjà exister dans la base de données active.

DEFAULT_SCHEMA = { schema_name | NULL }

Spécifie le premier schéma que le serveur va interroger pour résoudre les noms des objets associés à cet utilisateur. La définition du schéma par défaut sur NULL supprime un schéma par défaut d'un groupe Windows. L'option NULL ne peut pas être utilisée avec un utilisateur Windows.

PASSWORD = 'password'

s’applique à: SQL Server 2012 (11.x) et versions ultérieures, Azure SQL Database.

Spécifie le mot de passe de l'utilisateur à modifier. Les mots de passe respectent la casse.

Remarque

Cette option est uniquement disponible pour les utilisateurs à relation contenant-contenu. Pour plus d’informations, consultez Bases de données autonomes et sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'

s’applique à: SQL Server 2012 (11.x) et versions ultérieures, Azure SQL Database.

Mot de passe de l’utilisateur actuel qui sera remplacé par 'password'. Les mots de passe respectent la casse. OLD_PASSWORD est obligatoire pour changer un mot de passe, sauf si vous disposez de l’autorisation ALTER ANY USER. La spécification obligatoire du paramètre OLD_PASSWORD empêche les utilisateurs disposant de l’autorisation IMPERSONATION de changer le mot de passe.

Remarque

Cette option est uniquement disponible pour les utilisateurs à relation contenant-contenu.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <nom de langue> | alias de langue <> }

S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

Spécifie une langue par défaut à affecter à l'utilisateur. Si cette option a la valeur NONE, la langue par défaut est la langue par défaut actuellement définie pour la base de données. Si la langue par défaut de la base de données est modifiée ultérieurement, la langue par défaut de l’utilisateur reste inchangée. DEFAULT_LANGUAGE peut être l’ID local (lcid), le nom de la langue ou l’alias de langue.

Remarque

Cette option ne peut être spécifiée que dans une base de données autonome et uniquement pour les utilisateurs contenus.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

s’applique à: SQL Server 2016 (13.x) et versions ultérieures, Azure SQL Database.

Supprime les contrôles de métadonnées de chiffrement sur le serveur dans les opérations de copie en bloc. Cela permet à l’utilisateur de copier en bloc des données chiffrées entre des tables ou des bases de données, sans déchiffrer les données. La valeur par défaut est OFF.

Avertissement

Une utilisation incorrecte de cette option peut entraîner une altération des données. Pour plus d’informations, consultez chargement en bloc de données chiffrées sur des colonnes à l’aide d’Always Encrypted.

Notes

Le schéma par défaut correspond au premier schéma que le serveur doit interroger pour résoudre les noms des objets associés à cet utilisateur de base de données. Sauf spécification contraire, le schéma par défaut sera le propriétaire des objets créés par cet utilisateur de la base de données.

Si l'utilisateur possède un schéma par défaut, ce schéma par défaut est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, mais qu'il est membre d'un groupe qui dispose d'un schéma par défaut, le schéma par défaut du groupe est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, et qu'il est membre de plus d'un groupe, le schéma par défaut de l'utilisateur sera celui du groupe Windows avec le principal_id le plus bas et un schéma par défaut défini explicite. Si aucun schéma par défaut ne peut être déterminé pour un utilisateur, le schéma dbo est utilisé.

La valeur de DEFAULT_SCHEMA peut désigner un schéma qui n'existe pas encore dans la base de données. Vous pouvez donc affecter un schéma DEFAULT_SCHEMA à un utilisateur avant de créer le schéma en question.

En revanche, vous ne pouvez pas spécifier DEFAULT_SCHEMA pour un utilisateur mappé à un certificat ou à une clé asymétrique.

Important

La valeur DEFAULT_SCHEMA est ignorée si l’utilisateur est membre du rôle serveur fixe sysadmin. Tous les membres du rôle serveur fixe sysadmin possèdent le schéma par défaut dbo.

Vous ne pouvez modifier le nom d'un utilisateur associé à une connexion d'accès ou à un groupe Windows que si le SID du nouveau nom d'utilisateur correspond au SID enregistré dans la base de données. Cette vérification permet d'empêcher l'usurpation des identités de connexion Windows dans la base de données.

La clause WITH LOGIN permet le remapping d’un utilisateur à une autre connexion. Les utilisateurs sans connexion, ceux mappés à un certificat ou bien ceux mappés à une clé asymétrique ne peuvent pas être remappés avec cette clause. Seuls les utilisateurs SQL et les utilisateurs (ou groupes) Windows peuvent être remappés. La clause WITH LOGIN ne peut pas être utilisée pour modifier le type d’utilisateur, comme la modification d’un compte Windows par une connexion SQL Server.

Un SID incompatible peut se produire quand vous avez restauré une base de données à partir d’un autre serveur et que vous avez un utilisateur de base de données mappé à une connexion SQL Server. Vous pouvez utiliser la clause WITH LOGIN pour corriger cette situation en remplaçant le SID utilisateur dans la base de données par le SID de connexion à partir du serveur.

Le nom de l'utilisateur sera renommé automatiquement avec le nom de la connexion si les conditions suivantes sont remplies.

  • L'utilisateur est un utilisateur Windows.

  • Le nom est un nom Windows (contient une barre oblique inverse).

  • Aucun nouveau nom n'a été spécifié.

  • Le nom actuel diffère du nom de connexion.

Sinon, l’utilisateur ne sera pas renommé, sauf si l’appelant appelle également la clause NAME.

Le nom d’un utilisateur mappé à une connexion SQL Server, un certificat ou une clé asymétrique ne peut pas contenir le caractère de barre oblique inverse (\).

Attention

Avec l'arrivée de SQL Server 2005, le comportement des schémas a changé. Ainsi, le code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut ne plus renvoyer des résultats corrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : 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. Dans ces bases de données, vous devez utiliser les nouveaux affichages catalogue. Les nouveaux affichages catalogue tiennent compte de la séparation des principaux et des schémas introduite dans SQL Server 2005 Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Sécurité

Remarque

Un utilisateur bénéficiant de l’autorisation ALTER ANY USER peut changer le schéma par défaut de n’importe quel utilisateur. Un utilisateur dont le schéma a été modifié peut, sans le savoir, sélectionner des données dans la mauvaise table ou exécuter du code à partir du mauvais schéma.

Autorisations

Pour changer le nom d’un utilisateur, vous devez disposer de l’autorisation ALTER ANY USER.

Pour changer la connexion cible d’un utilisateur, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le nom d’un utilisateur bénéficiant de l’autorisation CONTROL sur la base de données, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le schéma ou la langue par défaut, vous devez disposer de l’autorisation ALTER sur l’utilisateur. Les utilisateurs peuvent modifier leur propre schéma ou langue par défaut.

Exemples

Tous les exemples sont exécutés dans une base de données utilisateur.

R. Modifier le nom d’un utilisateur de base de données

L'exemple suivant modifie le nom de l'utilisateur de base de données Mary5 en Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Modifier le schéma par défaut d’un utilisateur

L'exemple suivant modifie le schéma par défaut de l'utilisateur Mary51 en Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Modifier plusieurs options à la fois

S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

L'exemple suivant modifie plusieurs options pour un utilisateur de base de données autonome dans une instruction. Remplacez <new strong password here> et <old strong password here> par vos propres valeurs.

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. Corriger un SID incompatible

L’exemple suivant corrige le SID de l’utilisateur dans la base de données afin qu’il corresponde au SID sur le serveur pour une connexion authentifiée SQL Server.

ALTER USER Mai
WITH LOGIN = Mai;
GO

* Azure SQL Database et Microsoft Fabric *

 

Azure SQL Database et Microsoft Fabric

Syntaxe

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

Syntaxe de la base de données SQL dans 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
[;]

Syntaxe de Microsoft Fabric Warehouse

-- Syntax for Fabric Data Warehouse

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

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

Arguments

user_name

Spécifie le nom qui identifie l'utilisateur dans cette base de données.

LOGIN = login_name

Remappe un utilisateur à une autre connexion en modifiant l'identificateur de sécurité (SID) de l'utilisateur de manière à ce qu'il corresponde au SID de la connexion.

Si l’instruction ALTER USER est la seule instruction dans un lot SQL, Azure SQL Database prend en charge la clause WITH LOGIN. Si l’instruction ALTER USER n’est pas la seule instruction d’un lot SQL ou est exécutée dans sql dynamique, la clause WITH LOGIN n’est pas prise en charge.

NAME = new_user_name

Spécifie le nouveau nom de cet utilisateur. new_user_name ne doit pas déjà exister dans la base de données active.

DEFAULT_SCHEMA = { schema_name | NULL }

Spécifie le premier schéma que le serveur va interroger pour résoudre les noms des objets associés à cet utilisateur.

La définition du schéma par défaut pour NULL supprime un schéma par défaut d’un utilisateur créé pour un groupe d’ID Microsoft Entra. L’option NULL ne peut pas être utilisée avec un autre type d’utilisateur.

PASSWORD = 'password'

s’applique à: Azure SQL Database.

Spécifie le mot de passe de l'utilisateur à modifier. Les mots de passe respectent la casse.

Remarque

Cette option est uniquement disponible pour les utilisateurs à relation contenant-contenu. Pour plus d’informations, consultez Bases de données autonomes et sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'

s’applique à: Azure SQL Database.

Mot de passe de l’utilisateur actuel qui sera remplacé par 'password'. Les mots de passe respectent la casse. OLD_PASSWORD est obligatoire pour changer un mot de passe, sauf si vous disposez de l’autorisation ALTER ANY USER. La spécification obligatoire du paramètre OLD_PASSWORD empêche les utilisateurs disposant de l’autorisation IMPERSONATION de changer le mot de passe.

Remarque

Cette option est uniquement disponible pour les utilisateurs à relation contenant-contenu.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

s’applique à: SQL Server 2016 (13.x) et versions ultérieures, Azure SQL Database.

Supprime les contrôles de métadonnées de chiffrement sur le serveur dans les opérations de copie en bloc. Cela permet à l’utilisateur de copier en bloc des données chiffrées entre des tables ou des bases de données, sans déchiffrer les données. La valeur par défaut est OFF.

Avertissement

Une utilisation incorrecte de cette option peut entraîner une altération des données. Pour plus d’informations, consultez chargement en bloc de données chiffrées sur des colonnes à l’aide d’Always Encrypted.

Notes

Le schéma par défaut correspond au premier schéma que le serveur doit interroger pour résoudre les noms des objets associés à cet utilisateur de base de données. Sauf spécification contraire, le schéma par défaut sera le propriétaire des objets créés par cet utilisateur de la base de données.

Si l’utilisateur a un schéma par défaut, ce schéma par défaut est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, mais qu'il est membre d'un groupe qui dispose d'un schéma par défaut, le schéma par défaut du groupe est utilisé. Si l’utilisateur n’a pas de schéma par défaut et est membre de plusieurs groupes, le schéma par défaut de l’utilisateur est celui du groupe avec le principal_id le plus bas et un schéma par défaut défini explicitement. Si aucun schéma par défaut ne peut être déterminé pour un utilisateur, le schéma dbo est utilisé.

La valeur de DEFAULT_SCHEMA peut désigner un schéma qui n'existe pas encore dans la base de données. Vous pouvez donc affecter un schéma DEFAULT_SCHEMA à un utilisateur avant de créer le schéma en question.

En revanche, vous ne pouvez pas spécifier DEFAULT_SCHEMA pour un utilisateur mappé à un certificat ou à une clé asymétrique.

Important

La valeur DEFAULT_SCHEMA est ignorée si l’utilisateur est membre du rôle serveur fixe sysadmin. Tous les membres du rôle serveur fixe sysadmin possèdent le schéma par défaut dbo.

La clause WITH LOGIN permet le remapping d’un utilisateur à une autre connexion. Les utilisateurs sans connexion, ceux mappés à un certificat ou bien ceux mappés à une clé asymétrique ne peuvent pas être remappés avec cette clause. Seuls les utilisateurs SQL peuvent être remappés. La clause WITH LOGIN ne peut pas être utilisée pour modifier le type d’utilisateur.

Le nom de l'utilisateur sera renommé automatiquement avec le nom de la connexion si les conditions suivantes sont remplies.

  • Aucun nouveau nom n'a été spécifié.

  • Le nom actuel diffère du nom de connexion.

Sinon, l’utilisateur ne sera pas renommé, sauf si l’appelant appelle également la clause NAME.

Le nom d’un utilisateur mappé à une connexion SQL Server, un certificat ou une clé asymétrique ne peut pas contenir le caractère de barre oblique inverse (\).

Attention

Avec l'arrivée de SQL Server 2005, le comportement des schémas a changé. Ainsi, le code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut ne plus renvoyer des résultats corrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : 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. Dans ces bases de données, vous devez utiliser les nouveaux affichages catalogue. Les nouveaux affichages catalogue tiennent compte de la séparation des principaux et des schémas introduite dans SQL Server 2005 Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Base de données SQL Fabric

Pour plus d’informations, consultez :

Fabric Warehouse

Dans Microsoft Fabric Warehouse, ALTER USER est limité à la définition du schéma par défaut uniquement. Tous les autres arguments couramment associés à ALTER USER dans SQL ou d’autres produits ne sont pas pris en charge et retournent une erreur.

Dans Microsoft Fabric Warehouse, le nom du classement respecte la casse.

Le schéma par défaut correspond au premier schéma que le serveur doit interroger pour résoudre les noms des objets associés à cet utilisateur de base de données. Sauf spécification contraire, le schéma par défaut sera le propriétaire des objets créés par cet utilisateur de la base de données.

Si un utilisateur a un schéma par défaut, ce schéma sera utilisé. Si aucun schéma par défaut n’est spécifié, le schéma dbo est appliqué. Le moteur de base de données tente d’abord de résoudre les objets dans le schéma par défaut de l’utilisateur. Si aucun objet correspondant n’est trouvé, il vérifie ensuite le schéma dbo.

DEFAULT_SCHEMA pouvez être défini sur un schéma qui n’existe pas actuellement dans la base de données. Vous pouvez donc affecter un schéma DEFAULT_SCHEMA à un utilisateur avant de créer le schéma en question.

Pour plus d’informations, consultez :

Sécurité

Remarque

Un utilisateur bénéficiant de l’autorisation ALTER ANY USER peut changer le schéma par défaut de n’importe quel utilisateur. Un utilisateur dont le schéma a été modifié peut, sans le savoir, sélectionner des données dans la mauvaise table ou exécuter du code à partir du mauvais schéma.

Autorisations

Pour changer le nom d’un utilisateur, vous devez disposer de l’autorisation ALTER ANY USER.

Pour changer la connexion cible d’un utilisateur, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le nom d’un utilisateur bénéficiant de l’autorisation CONTROL sur la base de données, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le schéma ou la langue par défaut, vous devez disposer de l’autorisation ALTER sur l’utilisateur. Les utilisateurs peuvent modifier leur propre schéma ou langue par défaut.

Autorisations de rôle Fabric Warehouse

Les utilisateurs disposant d’un minimum d’appartenance au rôle CONTRIBUTEUR au niveau de l’espace de travail peuvent modifier le SCHÉMA DEFAULT de n’importe quel utilisateur sur Fabric Data Warehouse.

Les utilisateurs disposant d’un appartenance au rôle VIEWER au niveau de l’espace de travail ne peuvent pas modifier leur propre schéma par défaut, sauf si un utilisateur disposant d’un accès élevé accorde cette autorisation.

Les utilisateurs inclus dans le rôle VIEWER au niveau de l’espace de travail nécessitent l’autorisation ALTER ANY USER pour modifier le schéma par défaut d’autres utilisateurs.

Exemples

Tous les exemples sont exécutés dans une base de données utilisateur.

R. Modifier le nom d’un utilisateur de base de données

L'exemple suivant modifie le nom de l'utilisateur de base de données Mary5 en Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Modifier le schéma par défaut d’un utilisateur

L'exemple suivant modifie le schéma par défaut de l'utilisateur Mary51 en Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Modifier plusieurs options à la fois

L'exemple suivant modifie plusieurs options pour un utilisateur de base de données autonome dans une instruction. Remplacez <new strong password here> et <old strong password here> par vos propres valeurs.

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

D. Modifier le schéma par défaut d’un utilisateur

L'exemple suivant modifie le schéma par défaut de l'utilisateur Mary51 en Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

* SQL Managed Instance *

 

Azure SQL Managed Instance

Syntaxe

Important

Seules les options suivantes sont prises en charge pour Azure SQL Managed Instance lors de l’application aux utilisateurs disposant de connexions Microsoft Entra : DEFAULT_SCHEMA = { schema_name | NULL } et DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }

il existe une nouvelle extension de syntaxe qui a été ajoutée pour aider à remappper les utilisateurs dans une base de données migrée vers Azure SQL Managed Instance. La syntaxe ALTER USER permet de mapper les utilisateurs de base de données dans un domaine fédéré et synchronisé avec l’ID Microsoft Entra, aux connexions Microsoft Entra.

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

Arguments

user_name

Spécifie le nom qui identifie l'utilisateur dans cette base de données.

LOGIN = login_name

Remappe un utilisateur à une autre connexion en modifiant l'identificateur de sécurité (SID) de l'utilisateur de manière à ce qu'il corresponde au SID de la connexion.

Si l’instruction ALTER USER est la seule instruction dans un lot SQL, Azure SQL Database prend en charge la clause WITH LOGIN. Si l’instruction ALTER USER n’est pas la seule instruction d’un lot SQL ou est exécutée dans sql dynamique, la clause WITH LOGIN n’est pas prise en charge.

NAME = new_user_name

Spécifie le nouveau nom de cet utilisateur. new_user_name ne doit pas déjà exister dans la base de données active.

DEFAULT_SCHEMA = { schema_name | NULL }

Spécifie le premier schéma que le serveur va interroger pour résoudre les noms des objets associés à cet utilisateur. La définition du schéma par défaut sur NULL supprime un schéma par défaut d'un groupe Windows. L'option NULL ne peut pas être utilisée avec un utilisateur Windows.

PASSWORD = 'password'

Spécifie le mot de passe de l'utilisateur à modifier. Les mots de passe respectent la casse.

Remarque

Cette option est uniquement disponible pour les utilisateurs à relation contenant-contenu. Pour plus d’informations, consultez Bases de données autonomes et sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD = 'oldpassword'

Mot de passe de l’utilisateur actuel qui sera remplacé par 'password'. Les mots de passe respectent la casse. OLD_PASSWORD est obligatoire pour changer un mot de passe, sauf si vous disposez de l’autorisation ALTER ANY USER. La spécification obligatoire du paramètre OLD_PASSWORD empêche les utilisateurs disposant de l’autorisation IMPERSONATION de changer le mot de passe.

Remarque

Cette option est uniquement disponible pour les utilisateurs à relation contenant-contenu.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <nom de langue> | alias de langue <> }

Spécifie une langue par défaut à affecter à l'utilisateur. Si cette option a la valeur NONE, la langue par défaut est la langue par défaut actuellement définie pour la base de données. Si la langue par défaut de la base de données est modifiée ultérieurement, la langue par défaut de l'utilisateur reste inchangée. DEFAULT_LANGUAGE peut être l’ID local (lcid), le nom de la langue ou l’alias de langue.

Remarque

Cette option ne peut être spécifiée que dans une base de données autonome et uniquement pour les utilisateurs contenus.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

Supprime les contrôles de métadonnées de chiffrement sur le serveur dans les opérations de copie en bloc. Cela permet à l’utilisateur de copier en bloc des données chiffrées entre des tables ou des bases de données, sans déchiffrer les données. La valeur par défaut est OFF.

Avertissement

Une utilisation incorrecte de cette option peut entraîner une altération des données. Pour plus d’informations, consultez chargement en bloc de données chiffrées sur des colonnes à l’aide d’Always Encrypted.

Notes

Le schéma par défaut correspond au premier schéma que le serveur doit interroger pour résoudre les noms des objets associés à cet utilisateur de base de données. Sauf spécification contraire, le schéma par défaut sera le propriétaire des objets créés par cet utilisateur de la base de données.

Si l’utilisateur a un schéma par défaut, ce schéma par défaut est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, mais qu'il est membre d'un groupe qui dispose d'un schéma par défaut, le schéma par défaut du groupe est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, et qu'il est membre de plus d'un groupe, le schéma par défaut de l'utilisateur sera celui du groupe Windows avec le principal_id le plus bas et un schéma par défaut défini explicite. Si aucun schéma par défaut ne peut être déterminé pour un utilisateur, le schéma dbo est utilisé.

La valeur de DEFAULT_SCHEMA peut désigner un schéma qui n'existe pas encore dans la base de données. Vous pouvez donc affecter un schéma DEFAULT_SCHEMA à un utilisateur avant de créer le schéma en question.

En revanche, vous ne pouvez pas spécifier DEFAULT_SCHEMA pour un utilisateur mappé à un certificat ou à une clé asymétrique.

Important

La valeur DEFAULT_SCHEMA est ignorée si l’utilisateur est membre du rôle serveur fixe sysadmin. Tous les membres du rôle serveur fixe sysadmin possèdent le schéma par défaut dbo.

Vous ne pouvez modifier le nom d'un utilisateur associé à une connexion d'accès ou à un groupe Windows que si le SID du nouveau nom d'utilisateur correspond au SID enregistré dans la base de données. Cette vérification permet d'empêcher l'usurpation des identités de connexion Windows dans la base de données.

La clause WITH LOGIN permet le remapping d’un utilisateur à une autre connexion. Les utilisateurs sans connexion, ceux mappés à un certificat ou bien ceux mappés à une clé asymétrique ne peuvent pas être remappés avec cette clause. Seuls les utilisateurs SQL et les utilisateurs (ou groupes) Windows peuvent être remappés. La clause WITH LOGIN ne peut pas être utilisée pour modifier le type d’utilisateur, comme la modification d’un compte Windows par une connexion SQL Server. La seule exception est lors de la modification d’un utilisateur Windows par un utilisateur Microsoft Entra.

Remarque

Les règles suivantes ne s’appliquent pas aux utilisateurs Windows sur Azure SQL Managed Instance, car nous ne prenons pas en charge la création de connexions Windows sur Azure SQL Managed Instance. L’option WITH LOGIN ne peut être utilisée que si les connexions Microsoft Entra sont présentes.

Le nom de l'utilisateur sera renommé automatiquement avec le nom de la connexion si les conditions suivantes sont remplies.

  • L'utilisateur est un utilisateur Windows.

  • Le nom est un nom Windows (contient une barre oblique inverse).

  • Aucun nouveau nom n'a été spécifié.

  • Le nom actuel diffère du nom de connexion.

Sinon, l’utilisateur ne sera pas renommé, sauf si l’appelant appelle également la clause NAME.

Le nom d’un utilisateur mappé à une connexion SQL Server, un certificat ou une clé asymétrique ne peut pas contenir le caractère de barre oblique inverse (\).

Attention

Avec l'arrivée de SQL Server 2005, le comportement des schémas a changé. Ainsi, le code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut ne plus renvoyer des résultats corrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : 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. Dans ces bases de données, vous devez utiliser les nouveaux affichages catalogue. Les nouveaux affichages catalogue tiennent compte de la séparation des principaux et des schémas introduite dans SQL Server 2005 Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Remarques pour les utilisateurs Windows dans SQL local migrés vers Azure SQL Managed Instance

Ces remarques s’appliquent à l’authentification en tant qu’utilisateurs Windows qui ont été fédérés et synchronisés avec l’ID Microsoft Entra.

  • La validation des utilisateurs ou groupes Windows mappés à Microsoft Entra ID est effectuée par défaut via l’API Graph dans toutes les versions de la syntaxe ALTER USER utilisée à des fins de migration.
  • Les utilisateurs locaux à qui un nom d’alias a été attribué (à l’aide d’un nom différent du compte Windows d’origine) conserveront le nom d’alias.
  • Pour l’authentification Microsoft Entra, le paramètre LOGIN s’applique uniquement à Azure SQL Managed Instance et ne peut pas être utilisé avec SQL Database.
  • Pour afficher les connexions pour les principaux Microsoft Entras, utilisez la commande suivante : SELECT * FROM sys.server_principals;.
  • Vérifiez que le type indiqué de la connexion est E ou X.
  • L’option PASSWORD ne peut pas être utilisée pour les utilisateurs de Microsoft Entra.
  • Dans tous les cas de migration, les rôles et les autorisations des utilisateurs ou groupes Windows sont automatiquement transférés vers les nouveaux utilisateurs ou groupes Microsoft Entra.
  • FROM EXTERNAL PROVIDER consiste à modifier les utilisateurs et groupes Windows de SQL local vers les utilisateurs et groupes Microsoft Entra. Le domaine Windows doit être fédéré avec l’ID Microsoft Entra et tous les membres du domaine Windows doivent exister dans l’ID Microsoft Entra lors de l’utilisation de cette extension. La syntaxe FROM EXTERNAL PROVIDER s’applique à Azure SQL Managed Instance et doit être utilisée si les utilisateurs Windows n’ont pas de connexions sur l’instance SQL d’origine et doivent être mappés aux utilisateurs de base de données Microsoft Entra autonomes.
  • Dans ce cas, la user_name autorisée peut être :
  • Un utilisateur Windows (domain\user).
  • Un groupe Windows (MyWindowsGroup).
  • Alias Windows (MyWindowsAlias).
  • Le résultat de la commande ALTER remplace l’ancien user_name par le nom correspondant trouvé dans l’ID Microsoft Entra en fonction du SID d’origine de l’ancien user_name. Le nom modifié est remplacé et stocké dans les métadonnées de la base de données :
  • (domain\user) sera remplacé par Microsoft Entra user@domain.com.
  • (domain\MyWindowsGroup) sera remplacé par le groupe Microsoft Entra.
  • (MyWindowsAlias) restera inchangé, mais le SID de cet utilisateur sera archivé dans l’ID Microsoft Entra.

Remarque

Si le SID de l’utilisateur d’origine converti en object_ID est introuvable dans le locataire Microsoft Entra ID, la commande ALTER USER échoue.

  • Pour afficher les utilisateurs modifiés, utilisez la commande suivante : SELECT * FROM sys.database_principals;
  • Vérifiez que le type indiqué de l’utilisateur est E ou X.
  • Lorsque NAME est utilisé pour migrer des utilisateurs Windows vers des utilisateurs Microsoft Entra, les restrictions suivantes s’appliquent :
    • Une valeur LOGIN valide doit être spécifiée.
    • Le NOM est archivé dans le locataire Microsoft Entra ID et ne peut être que :
      • Le nom de la valeur LOGIN.
      • Alias : le nom ne peut pas exister dans l’ID Microsoft Entra.
      • Dans tous les autres cas, la syntaxe échoue.

Sécurité

Remarque

Un utilisateur bénéficiant de l’autorisation ALTER ANY USER peut changer le schéma par défaut de n’importe quel utilisateur. Un utilisateur dont le schéma a été modifié peut, sans le savoir, sélectionner des données dans la mauvaise table ou exécuter du code à partir du mauvais schéma.

Autorisations

Pour changer le nom d’un utilisateur, vous devez disposer de l’autorisation ALTER ANY USER.

Pour changer la connexion cible d’un utilisateur, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le nom d’un utilisateur bénéficiant de l’autorisation CONTROL sur la base de données, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le schéma ou la langue par défaut, vous devez disposer de l’autorisation ALTER sur l’utilisateur. Les utilisateurs peuvent modifier leur propre schéma ou langue par défaut.

Exemples

Tous les exemples sont exécutés dans une base de données utilisateur.

R. Modifier le nom d’un utilisateur de base de données

L'exemple suivant modifie le nom de l'utilisateur de base de données Mary5 en Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Modifier le schéma par défaut d’un utilisateur

L'exemple suivant modifie le schéma par défaut de l'utilisateur Mary51 en Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Modifier plusieurs options à la fois

L'exemple suivant modifie plusieurs options pour un utilisateur de base de données autonome dans une instruction. Remplacez <new strong password here> et <old strong password here> par vos propres valeurs.

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. Mapper l’utilisateur dans la base de données à une connexion Microsoft Entra après la migration

L’exemple suivant remapise l’utilisateur, westus/joe à un utilisateur Microsoft Entra. joe@westus.com Cet exemple concerne les connexions qui existent déjà dans l’instance managée. Cette opération doit être effectuée une fois que vous avez effectué une migration de base de données vers Azure SQL Managed Instance et que vous souhaitez utiliser la connexion Microsoft Entra pour l’authentification.

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

E. Mapper un ancien utilisateur Windows dans la base de données sans connexion dans Azure SQL Managed Instance à un utilisateur Microsoft Entra

L’exemple suivant remapise l’utilisateur, westus/joe sans connexion, à un utilisateur Microsoft Entra. joe@westus.com L’utilisateur fédéré doit exister dans l’ID Microsoft Entra.

ALTER USER [westus/joe] FROM EXTERNAL PROVIDER

F. Mapper l’alias utilisateur à une connexion Microsoft Entra existante

L’exemple suivant remappe le nom d’utilisateur westus\joe à joe_alias. La connexion Microsoft Entra correspondante dans ce cas est joe@westus.com.

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

G. Mapper un groupe Windows qui a été migré dans Azure SQL Managed Instance vers un groupe Microsoft Entra

L’exemple suivant mappage l’ancien groupe local à westus\mygroup un groupe mygroup Microsoft Entra dans l’instance managée. Le groupe doit exister dans l’ID Microsoft Entra.

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

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Syntaxe

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

Arguments

user_name

Spécifie le nom qui identifie l'utilisateur dans cette base de données.

LOGIN = login_name

Remappe un utilisateur à une autre connexion en modifiant l'identificateur de sécurité (SID) de l'utilisateur de manière à ce qu'il corresponde au SID de la connexion.

Si l’instruction ALTER USER est la seule instruction dans un lot SQL, Azure SQL Database prend en charge la clause WITH LOGIN. Si l’instruction ALTER USER n’est pas la seule instruction d’un lot SQL ou est exécutée dans sql dynamique, la clause WITH LOGIN n’est pas prise en charge.

NAME = new_user_name

Spécifie le nouveau nom de cet utilisateur. new_user_name ne doit pas déjà exister dans la base de données active.

DEFAULT_SCHEMA = { schema_name | NULL }

Spécifie le premier schéma que le serveur va interroger pour résoudre les noms des objets associés à cet utilisateur. La définition du schéma par défaut sur NULL supprime un schéma par défaut d'un groupe Windows. L'option NULL ne peut pas être utilisée avec un utilisateur Windows.

Notes

Le schéma par défaut correspond au premier schéma que le serveur doit interroger pour résoudre les noms des objets associés à cet utilisateur de base de données. Sauf spécification contraire, le schéma par défaut sera le propriétaire des objets créés par cet utilisateur de la base de données.

Si l’utilisateur a un schéma par défaut, ce schéma par défaut est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, mais qu'il est membre d'un groupe qui dispose d'un schéma par défaut, le schéma par défaut du groupe est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, et qu'il est membre de plus d'un groupe, le schéma par défaut de l'utilisateur sera celui du groupe Windows avec le principal_id le plus bas et un schéma par défaut défini explicite. Si aucun schéma par défaut ne peut être déterminé pour un utilisateur, le schéma dbo est utilisé.

La valeur de DEFAULT_SCHEMA peut désigner un schéma qui n'existe pas encore dans la base de données. Vous pouvez donc affecter un schéma DEFAULT_SCHEMA à un utilisateur avant de créer le schéma en question.

En revanche, vous ne pouvez pas spécifier DEFAULT_SCHEMA pour un utilisateur mappé à un certificat ou à une clé asymétrique.

Important

La valeur DEFAULT_SCHEMA est ignorée si l’utilisateur est membre du rôle serveur fixe sysadmin. Tous les membres du rôle serveur fixe sysadmin possèdent le schéma par défaut dbo.

La clause WITH LOGIN permet le remapping d’un utilisateur à une autre connexion. Les utilisateurs sans connexion, ceux mappés à un certificat ou bien ceux mappés à une clé asymétrique ne peuvent pas être remappés avec cette clause. Seuls les utilisateurs SQL et les utilisateurs (ou groupes) Windows peuvent être remappés. La clause WITH LOGIN ne peut pas être utilisée pour modifier le type d’utilisateur, comme la modification d’un compte Windows par une connexion SQL Server.

Le nom de l'utilisateur sera renommé automatiquement avec le nom de la connexion si les conditions suivantes sont remplies.

  • Aucun nouveau nom n'a été spécifié.

  • Le nom actuel diffère du nom de connexion.

Sinon, l’utilisateur ne sera pas renommé, sauf si l’appelant appelle également la clause NAME.

Le nom d’un utilisateur mappé à une connexion SQL Server, un certificat ou une clé asymétrique ne peut pas contenir le caractère de barre oblique inverse (\).

Attention

Avec l'arrivée de SQL Server 2005, le comportement des schémas a changé. Ainsi, le code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut ne plus renvoyer des résultats corrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : 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. Dans ces bases de données, vous devez utiliser les nouveaux affichages catalogue. Les nouveaux affichages catalogue tiennent compte de la séparation des principaux et des schémas introduite dans SQL Server 2005 Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Sécurité

Remarque

Un utilisateur bénéficiant de l’autorisation ALTER ANY USER peut changer le schéma par défaut de n’importe quel utilisateur. Un utilisateur dont le schéma a été modifié peut, sans le savoir, sélectionner des données dans la mauvaise table ou exécuter du code à partir du mauvais schéma.

Autorisations

Pour changer le nom d’un utilisateur, vous devez disposer de l’autorisation ALTER ANY USER.

Pour changer la connexion cible d’un utilisateur, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le nom d’un utilisateur bénéficiant de l’autorisation CONTROL sur la base de données, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le schéma ou la langue par défaut, vous devez disposer de l’autorisation ALTER sur l’utilisateur. Les utilisateurs peuvent modifier leur propre schéma ou langue par défaut.

Exemples

Tous les exemples sont exécutés dans une base de données utilisateur.

R. Modifier le nom d’un utilisateur de base de données

L'exemple suivant modifie le nom de l'utilisateur de base de données Mary5 en Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Modifier le schéma par défaut d’un utilisateur

L'exemple suivant modifie le schéma par défaut de l'utilisateur Mary51 en Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

* Analytics
Platform System (PDW) *

 

Système de la plateforme d'analyse

Syntaxe

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

Arguments

user_name

Spécifie le nom qui identifie l'utilisateur dans cette base de données.

LOGIN = login_name

Remappe un utilisateur à une autre connexion en modifiant l'identificateur de sécurité (SID) de l'utilisateur de manière à ce qu'il corresponde au SID de la connexion.

Si l’instruction ALTER USER est la seule instruction dans un lot SQL, Azure SQL Database prend en charge la clause WITH LOGIN. Si l’instruction ALTER USER n’est pas la seule instruction d’un lot SQL ou est exécutée dans sql dynamique, la clause WITH LOGIN n’est pas prise en charge.

NAME = new_user_name

Spécifie le nouveau nom de cet utilisateur. new_user_name ne doit pas déjà exister dans la base de données active.

DEFAULT_SCHEMA = { schema_name | NULL }

Spécifie le premier schéma que le serveur va interroger pour résoudre les noms des objets associés à cet utilisateur. La définition du schéma par défaut sur NULL supprime un schéma par défaut d'un groupe Windows. L'option NULL ne peut pas être utilisée avec un utilisateur Windows.

Notes

Le schéma par défaut correspond au premier schéma que le serveur doit interroger pour résoudre les noms des objets associés à cet utilisateur de base de données. Sauf spécification contraire, le schéma par défaut sera le propriétaire des objets créés par cet utilisateur de la base de données.

Si l’utilisateur a un schéma par défaut, ce schéma par défaut est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, mais qu'il est membre d'un groupe qui dispose d'un schéma par défaut, le schéma par défaut du groupe est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, et qu'il est membre de plus d'un groupe, le schéma par défaut de l'utilisateur sera celui du groupe Windows avec le principal_id le plus bas et un schéma par défaut défini explicite. Si aucun schéma par défaut ne peut être déterminé pour un utilisateur, le schéma dbo est utilisé.

La valeur de DEFAULT_SCHEMA peut désigner un schéma qui n'existe pas encore dans la base de données. Vous pouvez donc affecter un schéma DEFAULT_SCHEMA à un utilisateur avant de créer le schéma en question.

En revanche, vous ne pouvez pas spécifier DEFAULT_SCHEMA pour un utilisateur mappé à un certificat ou à une clé asymétrique.

Important

La valeur DEFAULT_SCHEMA est ignorée si l’utilisateur est membre du rôle serveur fixe sysadmin. Tous les membres du rôle serveur fixe sysadmin possèdent le schéma par défaut dbo.

La clause WITH LOGIN permet le remapping d’un utilisateur à une autre connexion. Les utilisateurs sans connexion, ceux mappés à un certificat ou bien ceux mappés à une clé asymétrique ne peuvent pas être remappés avec cette clause. Seuls les utilisateurs SQL et les utilisateurs (ou groupes) Windows peuvent être remappés. La clause WITH LOGIN ne peut pas être utilisée pour modifier le type d’utilisateur, comme la modification d’un compte Windows par une connexion SQL Server.

Le nom de l'utilisateur sera renommé automatiquement avec le nom de la connexion si les conditions suivantes sont remplies.

  • Aucun nouveau nom n'a été spécifié.

  • Le nom actuel diffère du nom de connexion.

Sinon, l’utilisateur ne sera pas renommé, sauf si l’appelant appelle également la clause NAME.

Le nom d’un utilisateur mappé à une connexion SQL Server, un certificat ou une clé asymétrique ne peut pas contenir le caractère de barre oblique inverse (\).

Attention

Avec l'arrivée de SQL Server 2005, le comportement des schémas a changé. Ainsi, le code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut ne plus renvoyer des résultats corrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : 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. Dans ces bases de données, vous devez utiliser les nouveaux affichages catalogue. Les nouveaux affichages catalogue tiennent compte de la séparation des principaux et des schémas introduite dans SQL Server 2005 Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Sécurité

Remarque

Un utilisateur bénéficiant de l’autorisation ALTER ANY USER peut changer le schéma par défaut de n’importe quel utilisateur. Un utilisateur dont le schéma a été modifié peut, sans le savoir, sélectionner des données dans la mauvaise table ou exécuter du code à partir du mauvais schéma.

Autorisations

Pour changer le nom d’un utilisateur, vous devez disposer de l’autorisation ALTER ANY USER.

Pour changer la connexion cible d’un utilisateur, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le nom d’un utilisateur bénéficiant de l’autorisation CONTROL sur la base de données, vous devez disposer de l’autorisation CONTROL sur la base de données.

Pour changer le schéma ou la langue par défaut, vous devez disposer de l’autorisation ALTER sur l’utilisateur. Les utilisateurs peuvent modifier leur propre schéma ou langue par défaut.

Exemples

Tous les exemples sont exécutés dans une base de données utilisateur.

R. Modifier le nom d’un utilisateur de base de données

L'exemple suivant modifie le nom de l'utilisateur de base de données Mary5 en Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Modifier le schéma par défaut d’un utilisateur

L'exemple suivant modifie le schéma par défaut de l'utilisateur Mary51 en Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO