Rechercher dans le manuel MySQL
13.7.1.10 SET PASSWORD Syntax
The SET PASSWORD
statement
assigns a password to a MySQL user account. It may also include
a password-verification clause that specifies the account
current password to be replaced, and a clause that manages
whether an account has a secondary password.
'
and
auth_string
''
each represent a cleartext (unencrypted) password.
current_auth_string
'
Clauses for password verification and secondary passwords
apply only to accounts that store credentials internally in
the mysql.user
system table
(mysql_native_password
,
sha256_password
, or
caching_sha2_password
). For accounts that
use plugins that perform authentication against an external
credential system, password management must be handled
externally against that system as well.
The REPLACE
'
clause is available as of MySQL 8.0.13. If given:
current_auth_string
'
REPLACE
specifies the account current password to be replaced, as a cleartext (unencrypted) string.The clause must be given if password changes for the account are required to specify the current password, as verification that the user attempting to make the change actually knows the current password.
The clause is optional if password changes for the account may but need not specify the current password.
The statement fails if the clause is given but does not match the current password, even if the clause is optional.
REPLACE
can be specified only when changing the account password for the current user.
For more information about password verification by specifying the current password, see Section 6.3.8, “Password Management”.
The RETAIN CURRENT PASSWORD
clause implements
dual-password capability and is available as of MySQL 8.0.14. If
given:
RETAIN CURRENT PASSWORD
retains an account current password as its secondary password, replacing any existing secondary password. The new password becomes the primary password, but clients can use the account to connect to the server using either the primary or secondary password. (Exception: If the new password specified by theSET PASSWORD
statement is empty, the secondary password becomes empty as well, even ifRETAIN CURRENT PASSWORD
is given.)If you specify
RETAIN CURRENT PASSWORD
for an account that has an empty primary password, the statement fails.If an account has a secondary password and you change its primary password without specifying
RETAIN CURRENT PASSWORD
, the secondary password remains unchanged.
For more information about use of dual passwords, see Section 6.3.8, “Password Management”.
Rather than using
SET PASSWORD ...
= '
syntax,
auth_string
'ALTER USER
syntax is the
preferred statement for account alterations, including
assigning passwords. For example:
Under some circumstances, SET
PASSWORD
may be recorded in server logs or on the
client side in a history file such as
~/.mysql_history
, which means that
cleartext passwords may be read by anyone having read access
to that information. For information about the conditions
under which this occurs for the server logs and how to control
it, see Section 6.1.2.3, “Passwords and Logging”. For similar
information about client-side logging, see
Section 4.5.1.3, “mysql Client Logging”.
SET PASSWORD
can be used with or
without a FOR
clause that explicitly names a
user account:
With a
FOR
clause, the statement sets the password for the named account, which must exist:user
With no
FOR
clause, the statement sets the password for the current user:user
Any client who connects to the server using a nonanonymous account can change the password for that account. (In particular, you can change your own password.) To see which account the server authenticated you as, invoke the
CURRENT_USER()
function:
If a FOR
clause is given, the account name uses the format described in
Section 6.2.4, “Specifying Account Names”. For example:
user
The host name part of the account name, if omitted, defaults to
'%'
.
SET PASSWORD
interprets the
string as a cleartext string, passes it to the authentication
plugin associated with the account, and stores the result
returned by the plugin in the account row in the
mysql.user
system table. (The plugin is given
the opportunity to hash the value into the encryption format it
expects. The plugin may use the value as specified, in which
case no hashing occurs.)
Setting the password for a named account (with a
FOR
clause) requires the
UPDATE
privilege for the
mysql
system database. Setting the password
for yourself (for a nonanonymous account with no
FOR
clause) requires no special privileges.
Statements that modify secondary passwords require these privileges:
The
APPLICATION_PASSWORD_ADMIN
privilege is required to use theRETAIN CURRENT PASSWORD
clause forSET PASSWORD
statements that apply to your own account. The privilege is required to manipulate your own secondary password because most users require only one password.If an account is to be permitted to manipulate secondary passwords for all accounts, it should be granted the
CREATE USER
privilege rather thanAPPLICATION_PASSWORD_ADMIN
.
When the read_only
system
variable is enabled, SET PASSWORD
requires the CONNECTION_ADMIN
or
SUPER
privilege in addition to
any other required privileges.
For additional information about setting passwords and authentication plugins, see Section 6.3.7, “Assigning Account Passwords”, and Section 6.3.10, “Pluggable Authentication”.
Traduction non disponible
Le manuel MySQL n'est pas encore traduit en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.
Document créé le 26/06/2006, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/mysql-rf-set-password.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.