Syntax
SET PASSWORD = { PASSWORD('some password') | OLD_PASSWORD('some password') | 'encrypted password' }
Beschreibung
Die SET PASSWORD
Anweisung weist einem vorhandenen MariaDB useraccount ein Passwort zu.
Wenn das Kennwort mit der Funktion PASSWORD()
oder OLD_PASSWORD()
angegeben wird, sollte der wörtliche Text des Kennworts angegeben werden. Wenn thepassword angegeben ist, ohne über eine Funktion, die passwordshould werden, die bereits verschlüsselte Passwort mit dem Wert zurückgegeben, der mitPASSWORD()
.,
OLD_PASSWORD()
sollte nur verwendet werden, wenn Ihre MariaDB/MySQL-Clients sehr alt sind (< 4.0.0).
OhneFOR
Klausel legt diese Anweisung das Passwort für den currentuser fest. Jeder Client, der über ein nicht anonymes Konto eine Verbindung zum Server hergestellt hat, kann das Kennwort für dieses Konto ändern.
Mit einerFOR
– Klausel legt diese Anweisung das Kennwort für ein bestimmtes Konto auf dem aktuellen Serverhost fest., Nur Clients, die die Berechtigung UPDATE
für die Datenbank mysql
haben, können dies tun. Der Benutzerwert sollte im Format user_name@host_name
übergeben werden, wobei user_name
und host_name
korrekt sind, da sie in den Spalten User und Host des Tabelleneintragsmysql.user
aufgeführt sind.
Das Argument für PASSWORD()
und das Kennwort für MariaDB-Clients können beliebig lang sein.
Unterstützung des Authentifizierungs-Plugins
MariaDB ab 10.,4
In MariaDB 10.4 und höher funktioniert SET PASSWORD
(mit oder ohne PASSWORD()
) für Konten, die über ein beliebiges Authentifizierungs-Plugin authentifiziert wurden, das Kennwörter unterstützt, die in der Tabelle mysql.global_priv
gespeichert sind.
Dieed25519
,mysql_native_password
undmysql_old_password
Authentifizierungs-Plugins speichern Passwörter in der Tabellemysql.global_priv
.,
Wenn Sie SET PASSWORD
auf einem Konto ausführen, das sich mit einem dieser Authentifizierungs-Plugins authentifiziert, das Kennwörter in der Tabelle mysql.global_priv
speichert, wird die PASSWORD()
– Funktion von dem vom Konto verwendeten spezifischen Authentifizierungs-Plugin ausgewertet. Das Authentifizierungs-Plugin Hashes das Passwort mit einer Methode, die mit diesem spezifischen Authentifizierungs-Plugin kompatibel ist.,
Dieunix_socket
,named_pipe
,gssapi
undpam
Authentifizierungs-Plugins speichern keine Passwörter in dermysql.global_priv
Tabelle. Diese Authentifizierungs-Plugins basieren auf anderen Methoden zur Authentifizierung des Benutzers.,
Wenn Sie versuchen, SET PASSWORD
für ein Konto auszuführen, das sich mit einem dieser Authentifizierungs-Plugins authentifiziert, in dem kein Kennwort in der Tabelle mysql.global_priv
gespeichert ist, löst MariaDB Server eine Warnung wie folgt aus:
SET PASSWORD is ignored for users authenticating via unix_socket plugin
Siehe Authentifizierung von MariaDB 10.4 für eine Übersicht über Authentifizierungsänderungen in MariaDB 10.4.
MariaDB bis 10.3
In MariaDB 10.,3 und vorher, SET PASSWORD
(mit oder ohne PASSWORD()
) funktioniert nur für konten authentifiziert über mysql_native_password
oder mysql_old_password
authentifizierung plugins
Passwortlose Benutzer Konten
Benutzer konten nicht immer erfordern passwörter anmelden.
Dieunix_socket
,named_pipe
undgssapi
Authentifizierungs-Plugins benötigen kein Passwort, um den Benutzer zu authentifizieren.,
Daspam
Authentifizierungs-Plugin benötigt je nach Konfiguration möglicherweise ein Kennwort, um den Benutzer zu authentifizieren.
Diemysql_native_password
undmysql_old_password
Authentifizierungs-Plugins erfordern Kennwörter für die Authentifizierung, aber das Passwort kann leer sein. In diesem Fall ist kein Passwort erforderlich.
Wenn Sie beim Versuch, sich als Konto anzumelden, für das kein Kennwort erforderlich ist, ein Kennwort angeben, ignoriert MariaDB Server das Kennwort einfach.
MariaDB ab 10.,4
In MariaDB 10.4 und höher kann ein Benutzerkonto definiert werden, um mehrere Authentifizierungs-Plugins in einer bestimmten Reihenfolge zu verwenden. Dieses spezifische Szenario ist in diesen Versionen möglicherweise auffälliger, da ein Konto mit einigen Authentifizierungs-Plugins verknüpft werden kann, für die ein Kennwort erforderlich ist, und einige nicht.
Beispiel
Wenn Sie beispielsweise einen Eintrag mit den Spaltenwerten ‚'
‚und‘ %.loc.,gov
‚, Sie würden thestatement wie folgt schreiben:
SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');
Wenn Sie ein Passwort für einen Benutzer löschen möchten, würden Sie Folgendes tun:
SET PASSWORD FOR 'bob'@localhost = PASSWORD("");
Siehe auch
- Password Validation Plugins – erlaubt die Einstellung grundlegender Kriterien für Passwörter
ALTER USER
Schreibe einen Kommentar