ALTER LOGIN (Transact-SQL)
Modifie les propriétés d'un compte de connexion SQL Server.
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.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. Indique 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 uniquement pour la synchronisation de connexion entre deux serveurs. N'utilisez pas l'option HASHED pour modifier des mots de passe de manière régulière.[!REMARQUE]
Cet argument ne fonctionne qu'avec des hachages générés par SQL Server 2000 ou versions ultérieures.
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 de l'entité de sécurité 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 de 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. Indique 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).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. Indique qu'une connexion verrouillée doit être déverrouillée.ADD CREDENTIAL
Ajoute des informations d'identification du fournisseur de gestion de clés extensible à la connexion. Pour plus d'informations, consultez Fonctionnement de la gestion de clés extensible (EKM).DROP CREDENTIAL
Supprime des informations d'identification du fournisseur de gestion de clés extensible de la connexion. Pour plus d'informations, consultez Fonctionnement de la 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 :
CHECK_EXPIRATION prend également la valeur ON, excepté si la valeur OFF est définie explicitement.
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. Autrement, 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.
Important
CHECK_EXPIRATION et CHECK_POLICY sont appliquées uniquement sur Windows Server 2003 et versions ultérieures. Pour plus d'informations, consultez Stratégie de mot de passe.
Important
Un problème connu dans Windows Server 2003 peut empêcher la réinitialisation du compteur de mots de passe erronés si le seuil de verrouillage de compte a été atteint. Cela peut entraîner le blocage immédiat des tentatives de connexion suivantes qui échouent. Vous pouvez réinitialiser le compteur de mots de passe erronés manuellement en affectant la valeur OFF à CHECK_POLICY, puis immédiatement la valeur ON. Pour plus d'informations sur le seuil de verrouillage de compte, consultez l'article 818078 de la Base de connaissances Microsoft intitulé Votre compte d'utilisateur peut être verrouillé de manière prématurée (éventuellement en anglais).
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 retourne le message d'erreur suivant :
« Msg 15151, Niveau 16, État 1, Ligne 1 »
« Impossible d'altérer la connexion 'Domain\Group', car elle n'existe pas ou vous ne possédez pas d'autorisation. »
C'est là 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.
Une entité de sécurité 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 de gestion de clés extensible 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