Ihr Passwort entspricht nicht den aktuellen Richtlinienanforderungen


148

Ich möchte einen neuen Benutzer in MySQL mit der folgenden Syntax erstellen:

create user 'demo'@'localhost' identified by 'password';

Es wird jedoch ein Fehler zurückgegeben:

Ihr Passwort entspricht nicht den aktuellen Richtlinienanforderungen.

Ich habe viele Passwörter ausprobiert, aber sie funktionieren nicht. Wie kann ich das beheben?


1
Stellen Sie die Kennwortrichtlinienebene niedriger ein. Schauen Sie hier: dev.mysql.com/doc/refman/5.6/en/…
Fjarlaegur

4
Wie ist Ihre Passwortrichtlinie eingerichtet? Sie können die Variablen, die für Ihr Passwortüberprüfungsmodul eingerichtet wurden, mitSHOW VARIABLES LIKE 'validate_password%'
JNevill

Vielen Dank! Ich habe die Kennwortrichtlinienebene niedriger eingestellt und es funktioniert.
Nguyen

1
Ich habe mein Problem mitUNINSTALL COMPONENT 'file://component_validate_password';
princebillyGK

Antworten:


244

Wegen deines Passwortes. Sie können die Kennzahlen zur Kennwortüberprüfung mithilfe der folgenden Abfrage im MySQL-Client anzeigen:

SHOW VARIABLES LIKE 'validate_password%';

Die Ausgabe sollte ungefähr so ​​sein:

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+

Dann können Sie die Kennwortrichtlinienebene niedriger einstellen, zum Beispiel:

SET GLOBAL validate_password.length = 6;
SET GLOBAL validate_password.number_count = 0;

Überprüfen Sie die MySQL-Dokumentation .


31
Um Himmels willen sollten Sie die offizielle MySQL-Dokumentation zitieren , kein YouTube-Video.
Marquis von Lorne

26
Verwenden Sie den folgenden Befehl, um 'Passwort' als Passwort für die Entwicklungsmaschine zu verwenden:SET GLOBAL validate_password_policy = 0;
Mahmudul Hasan Shohag

4
SET GLOBAL validate_password.length = 6; SET GLOBAL validate_password.number_count = 0; Aktualisiert!!
BeatingBytes

6
es ist nur eherSET GLOBAL validate_password.policy = 0;
iamtodor

1
Dies war hilfreich, da es mir tatsächlich zeigte, warum mein 30 Zeichen langes Passwort "schwach" war (kein Sonderzeichen). Ich konnte die Sonderzeichenanforderung entfernen und die Mindestlänge von 8 auf 20
erhöhen

68

HINWEIS: Dies ist möglicherweise keine sichere Lösung. Wenn Sie jedoch an einer Testumgebung arbeiten, benötigen Sie nur eine schnelle Lösung und kümmern sich nicht einmal um die Sicherheitseinstellungen. Dies ist eine schnelle Lösung.

Das gleiche Problem trat mir auf, als ich "mysql_secure_installation" ausführte und die Kennwortsicherheitsstufe auf "mittel" änderte.

Ich habe den Fehler umgangen, indem ich Folgendes ausgeführt habe:

mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;

Stellen Sie sicher, dass Sie das Plugin "validate_password" bei Bedarf neu installieren.


3
Schreckliche Lösung. Sie sollten den Pegel auf das für Sie passende Niveau senken und nicht die gesamte Einrichtung entfernen.
Marquis von Lorne

10
danke fürs Schreiben. schnelle und schmutzige Lösung. Genau wie @kennyut sagt: Stellen Sie sicher, dass Sie das Plugin "validate_password"
Meng Zhao

52

Wenn es Ihnen egal ist, wie die Passwortrichtlinie lautet. Sie können es auf LOW setzen, indem Sie den folgenden Befehl mysql eingeben:

mysql> SET GLOBAL validate_password_policy=LOW;

8
sollte SET GLOBAL validate_password.policy=LOW;stattdessen sein
songyy


20

Nach dem Ausführen des Befehls sudo mysql_secure_installation.

  1. Führen Sie aus sudo mysql, um die MySQL-Eingabeaufforderung aufzurufen.
  2. Führen Sie dies aus SELECT user,authentication_string,plugin,host FROM mysql.user;, um zu überprüfen, ob der Benutzer root als Plugin auth_socket vorhanden ist .
  3. Führen Sie dann aus uninstall plugin validate_password;, um Berechtigungen zu löschen, bevor Sie dies ausführen. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';Ändern Sie das Kennwort in ein sicheres Kennwort.

HINWEIS: Weitere Hilfe finden Sie unter diesem Link https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04


11

Sie müssen die MySQL-Kennwortrichtlinie in LOW ändern.

Login als root

mysql -u root -p

Richtlinien ändern

SET GLOBAL validate_password_policy=LOW;

oder

SET GLOBAL validate_password_policy=0;

Ausfahrt

exit

Starten Sie den MySQL-Dienst neu

sudo service mysqld restart

Sie müssen die MySQL-Kennwortrichtlinie in Niedrig = 0 / Mittel = 1 / Hoch = 2 ändern.

SET GLOBAL validate_password_policy=0;
SET GLOBAL validate_password_policy=1;    
SET GLOBAL validate_password_policy=2;

8

Für MySql 8 können Sie folgendes Skript verwenden:

SET GLOBAL validate_password.LENGTH = 4;
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.special_char_count = 0;
SET GLOBAL validate_password.check_user_name = 0;
ALTER USER 'user'@'localhost' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;

7

Meiner Meinung nach setzen Sie "validate_password_policy" auf "low" ist es nicht richtig, oder das "validate password plugin" zu deinstallieren. Sie dürfen niemals Kompromisse bei der Sicherheit Ihrer Datenbank eingehen (es sei denn, Sie kümmern sich nicht wirklich darum). Ich frage mich, warum die Leute diese Optionen überhaupt vorschlagen, wenn Sie einfach ein gutes Passwort auswählen können.

Um dieses Problem zu beheben, habe ich den folgenden Befehl in mysql ausgeführt: SHOW VARIABLES LIKE 'validate_password%', wie von @JNevill vorgeschlagen. Meine "validate_password_policy" wurde zusammen mit anderen Dingen auf "Mittel" gesetzt. Hier ist der Screenshot seiner Ausführung: Validate Password Policy

Das Ergebnis ist selbsterklärend. Für ein gültiges Kennwort (wenn die Kennwortrichtlinie auf mittel eingestellt ist):

  • Das Passwort muss mindestens 8 Zeichen lang sein
  • Die Anzahl der gemischten Fälle beträgt 1 (mindestens 1 Buchstabe in Kleinbuchstaben und 1 Buchstabe in Großbuchstaben)
  • Die Anzahl ist 1
  • Die minimale Anzahl von Sonderzeichen beträgt 1

Ein gültiges Passwort muss also der Richtlinie entsprechen. Beispiele für ein gültiges Passwort für die oben genannten Regeln sind möglicherweise:

  • Student123 @
  • NINZAcoder $ 100
  • demoPass # 00

Sie können eine beliebige Kombination auswählen, solange sie der Richtlinie entspricht.

Für andere "validate_password_policy" können Sie einfach die Werte für verschiedene Optionen suchen und Ihr Passwort entsprechend auswählen (ich habe es nicht für "STRONG" versucht ).

https://dev.mysql.com/doc/refman/5.6/en/validate-password-options-variables.html


2
Es ist STARK für die Top-Passwort-Richtlinie.
Steam Gamer

Ich verstehe auch , die Menschen nicht zu degradieren was darauf hindeutet , validate_password_policyzu LOW. Benutzer können perfekt ein sicheres Passwort erstellen oder generieren, das die Anforderung erfüllt. Wenn Sie sich nicht sicher sind, wie es geht, verwenden Sie dafür ein Tool. Zum Beispiel github.com/joseluisq/rpasswd
joseluisq

3

Schritt 1: Überprüfen Sie Ihr Standard-Authentifizierungs-Plugin

SHOW VARIABLES LIKE 'default_authentication_plugin';

Schritt 2: Erfüllen Sie Ihre Anforderungen an die Passwortüberprüfung

SHOW VARIABLES LIKE 'validate_password%';

Schritt 3: Richten Sie Ihren Benutzer mit den richtigen Kennwortanforderungen ein

CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';

3

Ich hatte das gleiche Problem und die Antwort liegt direkt vor Ihnen. Denken Sie daran, wann Sie das Skript ausgeführt haben, während Sie MySQL wie installiert haben

sudo mysql_secure_installation

Dort haben Sie irgendwo ausgewählt, welchen Kennworttyp Sie auswählen möchten

Es gibt drei Ebenen der Kennwortüberprüfungsrichtlinie:

LOW Length> = 8 MEDIUM Length> = 8, numerisch, Groß- und Kleinschreibung und Sonderzeichen STRONG Length> = 8, numerisch, Mixed Case, Sonderzeichen und Wörterbuchdatei

Bitte geben Sie 0 = NIEDRIG, 1 = MITTEL und 2 = STARK ein:

Sie müssen derselben Richtlinie ein Kennwort geben

Hier einige Beispielbeispiele für Ihre Passwörter:
für Typ 0: abcdabcd
für Typ 1: abcd1234
für Typ 2:ancd@1234


2

Fügen Sie für Laravel-Benutzer mit diesem Problem mit MySQL 8.0.x hinzu

'modes'=> [
             'ONLY_FULL_GROUP_BY',
             'STRICT_TRANS_TABLES',
             'NO_ZERO_IN_DATE',
             'NO_ZERO_DATE',
             'ERROR_FOR_DIVISION_BY_ZERO',
             'NO_ENGINE_SUBSTITUTION',
            ],

zu Ihrer database.php-Datei wie folgt:

// database.php

    'connections' => [

        'mysql' => [
            'driver'      => 'mysql',
            'host'        => env( 'DB_HOST', '127.0.0.1' ),
            'port'        => env( 'DB_PORT', '3306' ),
            'database'    => env( 'DB_DATABASE', 'forge' ),
            'username'    => env( 'DB_USERNAME', 'forge' ),
            'password'    => env( 'DB_PASSWORD', '' ),
            'unix_socket' => env( 'DB_SOCKET', '' ),
            'charset'     => 'utf8mb4',
            'collation'   => 'utf8mb4_unicode_ci',
            'prefix'      => '',
            'strict'      => true,
            'engine'      => null,
            'modes'       => [
                'ONLY_FULL_GROUP_BY',
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_ENGINE_SUBSTITUTION',
            ],
        ],
    ],

Es hat es für mich behoben.


2

Das Problem ist, dass Ihr Kennwort nicht mit den Kennwortüberprüfungsregeln übereinstimmt. Sie können die folgenden Schritte einfach ausführen, um Ihr Problem zu lösen.

Sie können einfach die Konfigurationsmatrix für die Kennwortüberprüfung anzeigen, indem Sie den folgenden Code eingeben.

mysql-> SHOW VARIABLES LIKE 'validate_password%';

Dann finden Sie in Ihrer Matrix unten Variablen mit entsprechenden Werten und dort müssen Sie überprüfen validate_password_length, validate_password_number_countund validate_password_policy.

Überprüfen Sie die für diese Variablen verwendeten Werte. Stellen Sie sicher, dass Ihr validate_password_lengthWert nicht größer als 6 sein sollte. Sie können diesen Wert mit dem folgenden Code auf 6 setzen.

SET GLOBAL validate_password_length = 6;

Und danach müssen Sie validate_password_number_countauf 0 setzen. Verwenden Sie dazu den folgenden Code.

SET GLOBAL validate_password_number_count = 0;

Schließlich müssen Sie Sie setzen validate_password_policyauf low. Wenn Sie dies haben Mediumoder HighIhre weniger sicheren Passwörter nicht zulassen. Stellen Sie dies auf lowden folgenden Code ein.

SET GLOBAL validate_password_policy=LOW;

1

Legen Sie ein Kennwort fest, das 7 MySql-Validierungsregeln entspricht

z.B:- d_VX>N("xn_BrD2y

Wenn Sie die Validierungskriterien etwas einfacher gestalten, wird das Problem behoben

SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;

Es wird jedoch empfohlen, ein sicheres Passwort zu verwenden, um die richtige Lösung zu finden


0

Diese Fehlermeldung hat nichts mit dem in Ihrer Tabelle gespeicherten Passwort zu tun. Es tritt auch auf, wenn Sie eingeben (auf der SQL-Konsole)

"Passwort auswählen ('123456789')"

oder wenn

"Passwort auswählen ('A123456789')"

oder wenn

"Passwort auswählen ('A! 123456789')"

Wenn Sie tippen

"Passwort auswählen ('A! a123456789')"

dann wird es funktionieren. Verwenden Sie einfach große + kleine Buchstaben, Sonderzeichen und Zahlen, um Ihr Passwort zu erstellen.

Sie können diese Überprüfungen in my.cnf deaktivieren, aber dann besteht ein Sicherheitsrisiko!

in [mysqld] hinzufügen:

validate_password_policy=LOW
validate_password_special_char_count=0
validate_password_length=0
validate_password_mixed_case_count=0
validate_password_number_count=0

0

funktionierte bei mir bei der Ubuntu-Neuinstallation von mysqld nicht, musste folgendes hinzufügen: zu /etc/mysql/mysql.conf.d/mysqld.cnf oder der Server würde nicht starten (schätze, das Plugin wurde nicht auf dem Computer geladen zum richtigen Zeitpunkt, als ich es einfach ohne die Plugin-Load-Add-Direktive hinzugefügt habe)

plugin-load-add=validate_password.so
validate_password_policy=LOW
validate_password_length=8
validate_password_mixed_case_count=0
validate_password_number_count=0
validate_password_special_char_count=0

0

Es gibt einige Momente, in denen es großartig ist, eine schnelle Lösung zu finden. Wenn Sie jedoch vermeiden können, die Kennwortbeschränkungen zu verringern, können Sie in Zukunft keine großen Kopfschmerzen mehr haben.

Der nächste Link stammt aus der offiziellen Dokumentation https://dev.mysql.com/doc/refman/5.6/en/validate-password.html , in der ein Beispiel genau wie Ihr Beispiel veröffentlicht und gelöst wird.

Das einzige Problem, das Sie haben, ist, dass Ihr Passwort nicht stark genug ist, um die tatsächliche Mindestrichtlinie zu erfüllen (nicht zum Entfernen empfohlen). Sie können also verschiedene Passwörter ausprobieren, wie Sie im Beispiel sehen können.


0

SHAR VARIABLES LIKE 'validate_password%';

Geben Sie hier die Bildbeschreibung ein

mysql> SET GLOBAL validate_password.length = 6;

mysql> SET GLOBAL validate_password.number_count = 0;

mysql> SET GLOBAL validate_password.policy = LOW;

SHAR VARIABLES LIKE 'validate_password%';

Geben Sie hier die Bildbeschreibung ein


-1
mysql> SET GLOBAL validate_password.policy = 0;

1
Während dieser Code das Problem des OP lösen kann, ist es am besten, eine Erklärung beizufügen, wie Ihr Code das Problem des OP behebt. Auf diese Weise können zukünftige Besucher aus Ihrem Beitrag lernen und ihn auf ihren eigenen Code anwenden. SO ist kein Codierungsdienst, sondern eine Ressource für Wissen. Es ist auch wahrscheinlicher, dass qualitativ hochwertige, vollständige Antworten positiv bewertet werden. Diese Funktionen sowie die Anforderung, dass alle Beiträge in sich geschlossen sind, sind einige der Stärken von SO als Plattform, die es von Foren unterscheidet. Sie können bearbeiten, um zusätzliche Informationen hinzuzufügen und / oder Ihre Erklärungen durch Quelldokumentation zu ergänzen.
SherylHohman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.