MySQL :: MySQL 8.0 Reference Manual :: 13.7.1.10 SET PASSWORD Statement

13.7.1.10 SET PASSWORD Statement

l’instruction SET PASSWORDattribue un mot de passe à un compte utilisateur MySQL. Le mot de passe peut être spécifié explicitement dans l’instruction ou généré aléatoirement par MySQL. L’instruction peut également inclure une clause de vérification de mot de passe qui spécifie le mot de passe actuel du compte à remplacer, et une clause qui gère si un compte dispose d’un mot de passe secondaire., 'auth_string' et 'current_auth_string' représentent chacun un texte en clair (non chiffré) mot de passe.

Remarque

plutôt que d’utiliserSET PASSWORD pour attribuer des mots de passe,ALTER USER est l’instruction préférée pour les modifications de compte, y compris l’attribution de mots de passe., Par exemple:

ALTER USER user IDENTIFIED BY 'auth_string';

Remarque

Les Clauses de génération aléatoire de mot de passe, de vérification de mot de passe et de mots de passe secondaires s’appliquent uniquement aux comptes qui utilisent un plugin d’authentification qui stocke les informations d’identification en interne Pour les comptes qui utilisent un plugin qui effectue l’authentification sur un système d’informations d’identification externe à MySQL, la gestion des mots de passe doit également être gérée en externe sur ce système. Pour plus d’informations sur le stockage interne des informations d’identification, reportez-vous à la Section 6.2.15, « gestion des mots de passe”.,

la clauseREPLACE 'current_auth_string' effectue la vérification du mot de passe et est disponible à partir de MySQL 8.0.13. Si cela est donné:

  • REPLACE spécifie le mot de passe actuel du compte à remplacer, sous forme de chaîne en texte clair (non chiffrée).

  • la clause doit être donnée si des modifications de mot de passe pour le compte sont nécessaires pour spécifier le mot de passe actuel, afin de vérifier que l’utilisateur qui tente d’effectuer la modification connaît réellement le mot de passe actuel.,

  • la clause est facultative si les changements de mot de passe pour le compte peuvent mais n’ont pas besoin de spécifier le mot de passe actuel.

  • L’instruction échoue si la clause est donné, mais ne correspond pas au mot de passe actuel, même si la clause est facultative.

  • REPLACE ne peut être spécifié que lors de la modification du mot de passe du compte pour l’utilisateur actuel.

pour plus d’informations sur la vérification du mot de passe en spécifiant le mot de passe actuel, reportez-vous à la Section 6.2.15, « gestion des mots de passe”.,

la clauseRETAIN CURRENT PASSWORD implémente la capacité de double mot de passe et est disponible à partir de MySQL 8.0.14. Si cela est donné:

  • RETAIN CURRENT PASSWORD conserve le mot de passe actuel du compte comme mot de passe secondaire, remplaçant tout mot de passe secondaire existant. Le nouveau mot de passe devient le mot de passe principal, mais les clients peuvent utiliser le compte pour se connecter au serveur à l’aide du mot de passe principal ou secondaire., (Exception: si le nouveau mot de passe spécifié par l’instruction SET PASSWORD est vide, le mot de passe secondaire le devient également, même si RETAIN CURRENT PASSWORD est donné.)

  • Si vous spécifiezRETAIN CURRENT PASSWORD pour un compte dont le mot de passe principal est vide, l’instruction échoue.

  • Si un compte a un mot de passe secondaire et que vous modifiez son mot de passe principal sans spécifier RETAIN CURRENT PASSWORD, le mot de passe secondaire reste inchangé.

Pour plus d’informations sur l’utilisation de deux mots de passe, voir la Section 6.2.,15,”Gestion Des Mots De Passe ».

SET PASSWORD permet à ces auth_option syntaxe:

  • = 'auth_string'

    Affecte le compte de la donnée littéral du mot de passe.

  • TO RANDOM

    attribue au compte un mot de passe généré aléatoirement par MySQL. L’instruction renvoie également le mot de passe en texte clair dans un jeu de résultats pour le rendre disponible pour l’utilisateur ou l’application exécutant l’instruction.,

    pour plus de détails sur le jeu de résultats et les caractéristiques des mots de passe générés aléatoirement, voir génération aléatoire de mots de passe.

    la génération aléatoire de mots de passe est disponible à partir de MySQL 8.0.18.

Important

dans certaines circonstances, SET PASSWORD peut être enregistré dans les journaux du serveur ou du côté client dans un fichier d’historique tel que ~/.mysql_history, ce qui signifie que lire par toute personne ayant lu l’accès à cette information., Pour plus d’informations sur les conditions dans lesquelles cela se produit pour les journaux du serveur et comment le contrôler, reportez-vous à la Section 6.1.2.3, « mots de passe et journalisation”. Pour des informations similaires sur la journalisation côté client, reportez-vous à la Section 4.5.1.3, « journalisation client mysql”.,p> SET PASSWORD peut être utilisé avec ou sans une clause FOR qui nomme explicitement un compte utilisateur:

  • avec un FOR user l’instruction définit le mot de passe pour le compte nommé, qui doit exister:

    SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
  • sans FOR user, l’instruction définit le mot de passe pour l’utilisateur actuel:

    SET PASSWORD = 'auth_string';

    e connecte au serveur à l’aide d’un compte non anonyme peut modifier le mot de passe de ce compte., (En particulier, vous pouvez modifier votre propre mot de passe. Pour voir quel compte le serveur vous a authentifié, invoquez la fonction CURRENT_USER():

    SELECT CURRENT_USER();

Si une clause FOR user est donnée, le nom du compte utilise le format décrit dans la Section 6.2.4, « spécification des noms de Compte”. Par exemple:

SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';

la partie nom d’hôte du nom du compte, si elle est omise, est par défaut '%'.,

SET PASSWORD interprète la chaîne comme une chaîne en clair, la transmet au plugin d’authentification associé au compte et stocke le résultat renvoyé par le plugin dans la ligne de compte de la table systèmemysql.user. (Le plugin a la possibilité de hacher la valeur dans le format de cryptage qu’il attend. Le plugin peut utiliser la valeur spécifiée, auquel cas aucun hachage ne se produit.,)

La définition du mot de passe pour un compte nommé (avec une clauseFOR) nécessite le privilègeUPDATE pour le schéma systèmemysql. La définition du mot de passe pour vous-même (pour un compte non anonyme sans clause FOR) ne nécessite aucun privilège spécial.,

les instructions qui modifient les mots de passe secondaires nécessitent ces privilèges:

  • le privilègeAPPLICATION_PASSWORD_ADMIN est requis pour utiliser la clauseRETAIN CURRENT PASSWORD pourSET PASSWORD relevés qui s’appliquent à votre propre compte. Le privilège est requis pour manipuler votre propre mot de passe secondaire, car la plupart des utilisateurs n’ont besoin que d’un seul mot de passe.,

  • Si un compte doit être autorisé à manipuler des mots de passe secondaires pour tous les comptes, le privilège CREATE USERdevrait lui être accordé plutôt que APPLICATION_PASSWORD_ADMIN.

lorsque la variable système read_only est activée, SET PASSWORD nécessite le privilège CONNECTION_ADMIN (ou le privilège SUPER obsolète privilège), en plus de tout autre privilège requis.

pour plus d’informations sur la définition des mots de passe et des plugins d’authentification, reportez-vous à la Section 6.2.,14,  » attribution de mots de passe de Compte”, et Section 6.2.17, « authentification enfichable”.

Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *