ALTER LOGIN (Transact-SQL)

Modifie les propriétés d'un compte de connexion SQL Server.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

ALTER LOGIN login_name 
    { 
    <status_option> 
    | WITH <set_option> [ ,... ]
    | <cryptographic_credential_option>
    } 

<status_option> ::= 
        ENABLE | DISABLE

<set_option> ::=            
    PASSWORD = 'password' | hashed_password HASHED
    [ 
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [<password_option> ] 
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL
 
<password_option> ::= 
    MUST_CHANGE | UNLOCK
<cryptographic_credentials_option> ::= 
         ADD CREDENTIAL credential_name
          | DROP CREDENTIAL credential_name

Arguments

  • login_name
    Spécifie le nom de la connexion SQL Server à modifier. Les connexions de domaine doivent être placées entre crochets au format [domaine\utilisateur].

  • ENABLE | DISABLE
    Active ou désactive cette connexion. La désactivation d'une connexion n'a aucune incidence sur le comportement des connexions qui sont déjà en cours. Les connexions désactivées conservent leurs autorisations et peuvent toujours être usurpées.

  • PASSWORD ='password'
    S'applique uniquement aux connexions SQL Server. Spécifie le mot de passe de la connexion à modifier. Les mots de passe respectent la casse.

  • PASSWORD **=**hashed_password
    S'applique uniquement au mot clé HASHED. Spécifie la valeur hachée du mot de passe de la connexion créée.

  • HASHED
    S'applique uniquement aux connexions SQL Server. Spécifie que le mot de passe entré après l'argument PASSWORD est déjà haché. Si cette option n'est pas sélectionnée, le mot de passe est haché avant d'être stocké dans la base de données. Cette option doit être utilisée pour la synchronisation des connexions entre deux serveurs. N'utilisez pas l'option HASHED pour modifier des mots de passe de manière régulière.

  • OLD_PASSWORD ='oldpassword'
    S'applique uniquement aux connexions SQL Server. Mot de passe actuel de la connexion à laquelle un nouveau mot de passe doit être attribué. Les mots de passe respectent la casse.

  • MUST_CHANGE
    S'applique uniquement aux connexions SQL Server. Si vous incluez cette option, SQL Server demande un mot de passe actualisé lors de la première utilisation de la connexion modifiée.

  • DEFAULT_DATABASE **=**database
    Spécifie une base de données par défaut à affecter à la connexion.

  • DEFAULT_LANGUAGE **=**language
    Spécifie une langue par défaut à affecter à la connexion.

  • NAME = login_name
    Nouveau nom de la connexion à renommer. S'il s'agit d'une connexion Windows, le SID du principal Windows correspondant au nouveau nom doit correspondre au SID de la connexion dans SQL Server. Le nouveau nom d'une connexion SQL Server ne peut pas contenir une barre oblique inverse (\).

  • CHECK_EXPIRATION = { ON | OFF }
    S'applique uniquement aux connexions SQL Server. Spécifie si les règles d'expiration des mots de passe doivent être imposées sur cette connexion. La valeur par défaut est OFF.

  • CHECK_POLICY = { ON | OFF }
    S'applique uniquement aux connexions SQL Server. Spécifie que les stratégies de mot de passe Windows de l'ordinateur sur lequel SQL Server s'exécute doivent être imposées sur cette connexion. La valeur par défaut est ON.

  • CREDENTIAL = credential_name
    Nom des informations d'identification à mapper sur une connexion SQL Server. Les informations d'identification doivent déjà exister sur le serveur. Pour plus d'informations, consultez Informations d'identification (moteur de base de données). Les informations d'identification ne peuvent pas être mappées à la connexion sa.

  • NO CREDENTIAL
    Supprime tout mappage existant de la connexion sur des informations d'identification du serveur. Pour plus d'informations, consultez Informations d'identification (moteur de base de données).

  • UNLOCK
    S'applique uniquement aux connexions SQL Server. Spécifie qu'une connexion verrouillée doit être déverrouillée.

  • ADD CREDENTIAL
    Ajoute des informations d'identification du fournisseur EKM (Extensible Key Management) à la connexion. Pour plus d'informations, consultez Gestion de clés extensible (EKM).

  • DROP CREDENTIAL
    Supprime des informations d'identification du fournisseur EKM (Extensible Key Management) de la connexion. Pour plus d'informations, consultez Gestion de clés extensible (EKM).

Notes

Lorsque CHECK_POLICY a la valeur ON, l'argument HASHED ne peut pas être utilisé.

Lorsque CHECK_POLICY prend la valeur ON, le comportement suivant a lieu :

  • L'historique du mot de passe est initialisé avec la valeur du hachage de mot de passe actuel.

Lorsque CHECK_POLICY prend la valeur OFF, le comportement suivant a lieu :

  • CHECK_EXPIRATION ON prend également la valeur OFF.

  • L'historique du mot de passe est supprimé.

  • La valeur de lockout_time est réinitialisée.

Si MUST_CHANGE est spécifié, CHECK_EXPIRATION et CHECK_POLICY doivent prendre la valeur ON. Sans quoi, l'instruction échoue.

Si CHECK_POLICY prend la valeur OFF, CHECK_EXPIRATION ne peut pas prendre la valeur ON. Si cette combinaison d'options est utilisée dans une instruction ALTER LOGIN, l'instruction échoue.

Vous ne pouvez pas utiliser ALTER_LOGIN avec l'argument DISABLE pour refuser l'accès à un groupe Windows. Par exemple, ALTER_LOGIN [domain\group] DISABLE retournera le message d'erreur suivant :

« Msg 15151, Niveau 16, État 1, Ligne 1 »

« Impossible d'altérer la connexion 'Domain\Group', car il n'existe pas ou vous ne possédez pas d'autorisation. »

C'est la procédure normale.

Autorisations

Nécessite l'autorisation ALTER ANY LOGIN.

Si l'option CREDENTIAL est utilisée, exige également l'autorisation ALTER ANY CREDENTIAL.

Si la connexion en cours de modification est membre du rôle serveur fixe sysadmin ou détient l'autorisation CONTROL SERVER, exige également l'autorisation CONTROL SERVER lors des modifications suivantes :

  • réinitialisation du mot de passe sans fournir l'ancien mot de passe ;

  • activation de MUST_CHANGE, CHECK_POLICY ou CHECK_EXPIRATION ;

  • modification du nom de la connexion ;

  • activation ou désactivation de la connexion ;

  • mappage de la connexion sur une autre information d'identification.

Un principal peut modifier le mot de passe, la langue et la base de données par défaut de sa propre connexion.

Exemples

A.Activation d'une connexion désactivée

L'exemple suivant active la connexion Mary5.

ALTER LOGIN Mary5 ENABLE;

B.Modification du mot de passe d'une connexion

L'exemple suivant remplace le mot de passe de la connexion Mary5 par un mot de passe fort.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C.Modification du nom d'une connexion

L'exemple suivant remplace le nom de connexion Mary5 par John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D.Mappage d'une connexion sur des informations d'identification

L'exemple suivant mappe la connexion John2 aux informations d'identification Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E.Mappage d'une connexion à des informations d'identification de gestion de clés extensible

L'exemple suivant mappe la connexion Mary5 aux informations d'identification EKM EKMProvider1.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F.Déverrouillage d'une connexion

Pour déverrouiller une connexion SQL Server, exécutez l'instruction suivante, en remplaçant * * * * par le mot de passe de compte souhaité.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO

Pour déverrouiller une connexion sans modifier le mot de passe, désactivez la stratégie de contrôle, puis réactivez-la.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G.Modification du mot de passe d'une connexion à l'aide de HASHED

L'exemple suivant modifie le mot de passe de la connexion TestUser en une valeur déjà hachée.

ALTER LOGIN TestUser WITH 
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Voir aussi

Référence

CREATE LOGIN (Transact-SQL)

DROP LOGIN (Transact-SQL)

CREATE CREDENTIAL (Transact-SQL)

EVENTDATA (Transact-SQL)

Concepts

Informations d'identification (moteur de base de données)

Gestion de clés extensible (EKM)