Wie deaktiviere ich die MySQL-Passwortüberprüfung?

153

Es scheint, dass ich das Passwortüberprüfungs-Plugin in MySQL 5.7 versehentlich geladen habe. Dieses Plugin scheint alle Passwörter zu zwingen, bestimmte Regeln einzuhalten.

Ich möchte das ausschalten.

Ich habe versucht, die hier vorgeschlagene Variable validate_password_length ohne Erfolg zu ändern .

mysql> SET GLOBAL validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR 'app' = PASSWORD('abcd');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Ich möchte das Plugin entweder entladen oder irgendwie neutralisieren.

Alex Ryan
quelle
9
Haben Sie versucht, die Richtlinieneinstellung zu ändern? SET GLOBAL validate_password_policy=LOW;
Rikki
1
SET GLOBAL validate_password.policy=LOW;
Belgacea

Antworten:

430

Folgendes kann ich tun, um das Plugin zur Überprüfung des Passworts zu entfernen:

  1. Melden Sie sich als root beim MySQL-Server an mysql -h localhost -u root -p
  2. Führen Sie den folgenden SQL-Befehl aus: uninstall plugin validate_password;
  3. Wenn die letzte Zeile nicht funktioniert (neue MySQL-Version), sollten Sie ausführen UNINSTALL COMPONENT 'file://component_validate_password';

Ich würde diese Lösung für ein Produktionssystem nicht empfehlen. Ich habe diese Lösung auf einer lokalen MySQL-Instanz nur für Entwicklungszwecke verwendet.

Ray Hunter
quelle
18
Verwenden Sie den folgenden Befehl, um es wieder zu aktivieren: INSTALL PLUGIN validate_password SONAME 'validate_password.so';
vchrizz
8
Um das Plugin zu entfernen, müssen Sie mindestens einmal über grep 'password' /var/log/mysqld.log | tail -1und dann ein sicheres Passwort einrichten /usr/bin/mysql_secure_installation. Danach können Sie die Befehle von srayhunter oben ausführen und dann ausführen mysqladmin -u root -p'oldpassword' password newpass, um ein beliebiges Passwort zu verwenden.
Specialk1st
2
Das Plugin wird cracklib_password_checkin der aktuellen MariaDB aufgerufen .
Czerny
27
Hinweis: In MySQL 8.0.4 wurde das Plugin validate_password als Komponente validate_password erneut implementiert. Führen Sie anstelle der obigen Abfrage Nr. 2 UNINSTALL COMPONENT 'file://component_validate_password';
Folgendes aus
4
mysql> SET GLOBAL validate_password_policy = 0;
JREAM
41

Ich verwende MySQL v 8.0.12 und der Befehl zum Deaktivieren der Kennwortüberprüfungskomponente lautet:

UNINSTALL COMPONENT 'file://component_validate_password';

Um es wieder zu installieren, lautet der Befehl:

INSTALL COMPONENT 'file://component_validate_password';

Wenn Sie nur die Richtlinie zum Plugin zur Kennwortüberprüfung ändern möchten :

SET GLOBAL validate_password.policy = 0;   // For LOW
SET GLOBAL validate_password.policy = 1;   // For MEDIUM
SET GLOBAL validate_password.policy = 2;   // For HIGH
Akshay Gaur
quelle
34

Bauen Sie auf der Antwort von Sharfi auf und bearbeiten Sie die Datei /etc/my.cnf und fügen Sie nur diese eine Zeile hinzu:

validate_password_policy=LOW

Dies sollte die vom OP geforderte Validierung ausreichend neutralisieren. Nach dieser Änderung möchten Sie wahrscheinlich mysqld neu starten. Abhängig von Ihrem Betriebssystem würde es ungefähr so ​​aussehen:

sudo service mysqld restart

validate_password_policy nimmt entweder die Werte 0, 1 oder 2 oder die Wörter LOW, MEDIUM und STRONG an, die diesen Zahlen entsprechen. Der Standardwert ist MEDIUM (1), für das Kennwörter mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Ziffer und ein Sonderzeichen enthalten müssen und die Gesamtkennwortlänge mindestens 8 Zeichen beträgt. Wenn Sie, wie hier vorgeschlagen, auf LOW wechseln, wird nur die Länge überprüft. Wenn dies nicht durch andere Parameter geändert wurde, wird eine Länge von 8 überprüft. Wenn Sie auch diese Längenbeschränkung verkürzen möchten, können Sie auch validate_password_length hinzufügen die my.cnf Datei.

Weitere Informationen zu den Ebenen und Details finden Sie im MySQL-Dokument .


Für MySQL 8 wurde die Eigenschaft von "validate_password_policy" in "validate_password.policy" geändert. Die neuesten Informationen finden Sie im aktualisierten MySQL-Dokument .

ktbos
quelle
6
Wenn Sie nur eine vorübergehende Änderung benötigen, um ein einziges Passwort festlegen zu können, können SieSET GLOBAL validate_password_policy=LOW;
Rikki
1
Dies ist eine bessere Lösung als das Entfernen des Moduls.
Mrugesh Mistry
2
mysql: unbekannte Variable 'validate_password_policy = LOW'
Amalgovinus
2
Der Variablenname hat sich anscheinend in der neuesten Version von MySQL geändert. @Amalgovinus, versuchen Sie stattdessen, den Variablennamen "validate_password.policy" zu verwenden, und prüfen Sie, ob dies für Sie funktioniert. Und wenn ja, werde ich meine Antwort aktualisieren.
Ktbos
6

Um die Passwortprüfung in mariadb-10.1.24 (Fedora 24) zu deaktivieren, musste ich eine Zeile in der Datei /etc/my.cnf.d/cracklib_password_check.cnf auskommentieren :

;plugin-load-add=cracklib_password_check.so

Starten Sie dann den Mariadb-Dienst neu:

systemctl restart mariadb.service
lav
quelle
4

Sie können dies in der MySQL-Konfigurationsdatei konfigurieren. Datei öffnen /etc/my.cnfIn dieser Datei werden alle Zeilen, in denen die Kennwortrichtlinie konfiguriert wird, wie folgt kommentiert

#validate-password=FORCE_PLUS_PERMANENT
#validate_password_length=10
#validate_password_mixed_case_count=1
#validate_password_number_count=1
#validate_password_policy=MEDIUM

Kommentieren Sie den Wert der Eigenschaften aus, die Sie ändern möchten, und ändern Sie ihn.

Sharfi
quelle
2

Wenn Sie Ausnahmen machen möchten, können Sie den folgenden "Hack" anwenden. Es erfordert einen Benutzer mit DELETEund INSERTBerechtigungen für die mysql.pluginSystemtabelle.

uninstall plugin validate_password;
SET PASSWORD FOR 'app' = PASSWORD('abcd');
INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Langweiliger Sicherheitsausschluss: Überlegen Sie, warum Sie Ihr Passwort kürzer oder einfacher machen, und ersetzen Sie es möglicherweise durch ein komplexeres. Ich verstehe jedoch die Momente "Es ist 3 Uhr morgens und muss nur funktionieren". Stellen Sie nur sicher, dass Sie kein System von Hacks aufbauen, damit Sie nicht selbst gehackt werden

SeanDowney
quelle
2

Weiter zur Antwort von ktbos:

Ich habe die Datei mysqld.cnf geändert und mysql konnte nicht gestartet werden. Es stellte sich heraus, dass ich die falsche Datei geändert habe!

Stellen Sie daher sicher, dass die von Ihnen geänderte Datei Segment-Tags wie [mysqld_safe] und [mysqld] enthält. Unter letzterem habe ich wie vorgeschlagen gehandelt und die Zeile hinzugefügt:

validate_password_policy=LOW

Dies funktionierte perfekt, um mein Problem zu lösen, dass im Kennwort keine Sonderzeichen erforderlich sind.

Paul Pritchard
quelle
1

Deinstallieren:

mysql> uninstall plugin validate_password;

Ein deinstalliertes Plugin wird von nicht angezeigt show plugins;

Installieren:

mysql> install plugin validate_password SONAME 'validate_password.so';

Durch Konfiguration deaktiviert:

[mysqld]
validate_password = OFF

Ein Plugin kann nur bei Installation durch Konfiguration deaktiviert werden.

Antonio Bardazzi
quelle
0

Ich hatte ein Problem unter Ubuntu 18.04 auf MySQL. Wenn ich einen neuen Benutzer erstellen musste, war die Richtlinie immer hoch.

Die Art und Weise, wie ich herausgefunden habe, wie ich sie deaktivieren kann, war für zukünftige Kollegen, die zur Untersuchung kommen, auf niedrig eingestellt.

Melden Sie sich als root beim MySQL-Server an

mysql -h localhost -u root -p

Legen Sie den neuen Validierungstyp fest

SET GLOBAL validate_password_policy=0; //For Low

Starten Sie MySQL neu

sudo service mysql restart
vic.py.
quelle
1
Sie müssen diesen Befehl "SET ..." in die MySQL-Shell schreiben. Shell nicht schlagen.
Kodmanyagha
0

Bei einigen Installationen können Sie diesen Befehl erst ausführen, nachdem Sie das Root-Passwort zurückgesetzt haben. Sie können das Root-Passwort erst zurücksetzen, wenn Sie diesen Befehl ausführen. Klassischer Fang-22.

Eine Lösung, die von anderen Respondern nicht erwähnt wird, besteht darin, das Plugin vorübergehend über die MySQL-Konfiguration zu deaktivieren. In jedem my.cnfim [mysqld]Abschnitt hinzu:

skip-validate_password=1

und starten Sie den Server neu. Ändern Sie das Kennwort, setzen Sie den Wert wieder auf 0 und starten Sie erneut.

Otheus
quelle
das funktioniert nicht Können Sie erwähnen, für welche MySQL-Version dies gilt?
Dave Doga Oz
0

Für Referenzen und die Zukunft sollte man das Dokument hier lesen: https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-password-validation.html

Dann sollten Sie Ihre mysqld.cnfDatei bearbeiten , zum Beispiel:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

Fügen Sie dann im [mysqld] -Teil Folgendes hinzu:

plugin-load-add=validate_password.so
validate_password_policy=LOW

Wenn Sie Ihre Standardeinstellung bearbeiten, sieht dies grundsätzlich folgendermaßen aus:

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
plugin-load-add=validate_password.so
validate_password_policy=LOW

Dann können Sie neu starten:

systemctl restart mysql

Wenn Sie das plugin-load-add=validate_password.soTeil vergessen haben , wird beim Neustart ein Fehler angezeigt.

Genießen !

gabrielstuff
quelle
-1

Gehen Sie für MySQL 8.0.7 in Ihr MySQL-Verzeichnis und verwenden Sie dann:

sudo bin/mysql_secure_installation

um die Passwortoption zu konfigurieren.

J Tang
quelle
-2
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'localhost'  WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Keine Notwendigkeit, MySQL zu stoppen / zu starten

Pravin
quelle