ALTER USER (Transact-SQL)

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

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

ALTER USER user_name  
     WITH <set_item> [ ,...n ]
<set_item> ::= 
     NAME = new_user_name 
     | DEFAULT_SCHEMA = schema_name
     | LOGIN = login_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 connexion en modifiant l'identificateur de sécurité (SID) de l'utilisateur pour qu'il corresponde au SID de la connexion.
  • NAME **=**new_user_name
    Spécifie le nouveau nom de l'utilisateur. new_user_name ne doit pas exister dans la base de données active.
  • DEFAULT_SCHEMA **=**schema_name
    Spécifie le premier schéma que le serveur va interroger pour résoudre les noms des objets associés à cet utilisateur.

Notes

Si DEFAULT_SCHEMA n'est pas défini, l'utilisateur sera associé au schéma par défaut dbo. 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 associé à un groupe Windows, à un certificat ou à une clé asymétrique.

ms176060.note(fr-fr,SQL.90).gifImportant :
La valeur de 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 autorise le remappage d'un utilisateur à une connexion différente. Les utilisateurs sans connexion, mappés à un certificat ou mappés à une clé asymétrique ne peuvent être remappés à cette clause. Seuls les utilisateurs SQL Server 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, tel que changer un compte Windows en connexion .

Le nom de l'utilisateur est automatiquement remplacé par le nom de connexion s'il s'agit d'un utilisateur Windows, si son nom est un nom Windows (contient une barre oblique inverse) ou si aucun nom nouveau ne lui a été attribué et que son nom actuel est différent du nom de connexion. Sinon, l'utilisateur n'est pas renommé à moins que l'appelant appelle également la clause NAME.

ms176060.note(fr-fr,SQL.90).gifRemarque :
Un utilisateur bénéficiant de l'autorisation ALTER ANY USER peut modifier 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.

Le nom d'un utilisateur associé à une connexion d'accès SQL Server, un certificat ou une clé asymétrique ne doit pas contenir de barre oblique inverse (\).

ms176060.Caution(fr-fr,SQL.90).gifAttention :
Le comportement des schémas dans SQL Server 2005 n'est pas le même que dans les versions précédentes de SQL Server. Un code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut renvoyer des résultats incorrects. 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 ou ALTER AUTHORIZATION. Dans une base de données où une de ces instructions a été utilisée, vous devez recourir aux nouveaux affichages catalogue. Les nouveaux affichages catalogue prennent en compte la séparation des entités de sécurité et des schémas introduite dans SQL Server 2005. Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Autorisations

ALTER ANY USER sur la base de données pour modifier le nom d'un utilisateur. ALTER pour changer de schéma par défaut. Un utilisateur peut modifier son propre schéma par défaut.

Requiert l'autorisation CONTROL sur la base de données pour remapper un utilisateur à une connexion.

Exemples

A. Modification du nom d'un utilisateur de base de données

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

USE AdventureWorks;
ALTER USER Mary5 WITH NAME = Mary51;
GO 

B. Modification du schéma par défaut d'un utilisateur

L'exemple suivant attribue au schéma par défaut de l'utilisateur Mary51 la valeur Purchasing.

USE AdventureWorks;
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

Voir aussi

Référence

CREATE USER (Transact-SQL)
DROP USER (Transact-SQL)
EVENTDATA (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005