SET PASSWORD

Veröffentlicht in: Articles | 0

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 UPDATEfü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

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.