ALTER LOGIN (Transact-SQL)
Modifie les propriétés d'un compte de connexion SQL Server.
S'applique à : SQL Server (SQL Server 2008 jusqu'à la version actuelle), Base de données SQL Windows Azure (version initiale jusqu'à la version actuelle). |
Conventions de la syntaxe Transact-SQL
Syntaxe
-- SQL Server Syntax
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
-- Windows Azure SQL Database
ALTER LOGIN login_name
{
<status_option>
| WITH <set_option> [ ,.. .n ]
}
[;]
<status_option> ::=
ENABLE | DISABLE
<set_option> ::=
PASSWORD ='password'
[
OLD_PASSWORD ='oldpassword'
]
| NAME = login_name
Arguments
login_name
Spécifie le nom de la connexion SQL Server en cours de modification. 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 en cours de modification. Les mots de passe respectent la casse.PASSWORD **=**hashed_password
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
S'applique uniquement au mot clé HASHED. Spécifie la valeur hachée du mot de passe de la connexion en cours de création.
Remarque relative à la sécurité Lorsqu'un compte de connexion (ou un utilisateur de base de données à relation contenant-contenu) se connecte et est authentifié, la connexion met en cache les informations d'identité sur la connexion.Dans le cas d'une connexion d'authentification Windows, ces informations incluent des données sur l'appartenance aux groupes Windows.L'identité de la connexion reste authentifiée tant que la connexion est conservée.Pour imposer des modifications d'identité, une réinitialisation du mot de passe, par exemple, ou la modification de l'appartenance au groupe Windows, le compte de connexion doit fermer une session de l'autorité d'authentification (Windows ou SQL Server) et ouvrir une nouvelle session.Un membre du rôle serveur fixe sysadmin ou tout compte de connexion doté de l'autorisation ALTER ANY CONNECTION peut utiliser la commande KILL pour mettre fin à une connexion et obliger le compte de connexion à se reconnecter.SQL Server Management Studio peut réutiliser les informations de connexion lors de l'ouverture de plusieurs connexions dans les fenêtres de l'Explorateur d'objets et de l'éditeur de requête.Fermez toutes les connexions pour imposer une reconnexion.
HASHED
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
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 à : SQL Server 2008 jusqu'à SQL Server 2014.
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
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
Spécifie une base de données par défaut à affecter à la connexion.
DEFAULT_LANGUAGE **=**language
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
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 à : SQL Server 2008 jusqu'à SQL Server 2014.
S'applique uniquement aux connexions SQL Server. Spécifie si la stratégie d'expiration de mot de passe doit être imposée sur cette connexion. La valeur par défaut est OFF.
CHECK_POLICY = { ON | OFF }
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
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
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
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
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
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 à : SQL Server 2008 jusqu'à SQL Server 2014.
S'applique uniquement aux connexions SQL Server. Spécifie qu'une connexion verrouillée doit être déverrouillée.
ADD CREDENTIAL
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
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
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014.
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 de trouver la connexion « Domain\Group », car elle n'existe pas ou vous n'avez pas l'autorisation nécessaire. »
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, elle 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.
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014. |
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é.
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014. |
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.
S'applique à : SQL Server 2008 jusqu'à SQL Server 2014. |
ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO
Voir aussi
Référence
CREATE CREDENTIAL (Transact-SQL)