Come disattivare la convalida della password mysql?


153

Sembra che potrei aver inavvertitamente caricato il plugin di convalida della password in MySQL 5.7. Questo plugin sembra forzare tutte le password a rispettare determinate regole.

Vorrei disattivarlo.

Ho provato a cambiare la variabile validate_password_length come suggerito qui inutilmente.

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

Vorrei scaricare il plugin o castrarlo in qualche modo.


9
Hai provato a cambiare l'impostazione dei criteri? SET GLOBAL validate_password_policy=LOW;
Rikki

1
SET GLOBAL validate_password.policy=LOW;
belgacea,

Risposte:


430

Ecco cosa faccio per rimuovere il plug-in di convalida password:

  1. Accedi al server mysql come root mysql -h localhost -u root -p
  2. Esegui il seguente comando sql: uninstall plugin validate_password;
  3. Se l'ultima riga non funziona (nuova versione di mysql), è necessario eseguire UNINSTALL COMPONENT 'file://component_validate_password';

Non consiglierei questa soluzione per un sistema di produzione. Ho usato questa soluzione su un'istanza mysql locale solo a scopo di sviluppo.


18
per riattivarlo di nuovo, utilizzare il seguente comando: INSTALL PLUGIN validate_password SONAME 'validate_password.so';
vchrizz

8
Per rimuovere il plugin dovrai impostare una password sicura almeno una volta tramite grep 'password' /var/log/mysqld.log | tail -1e poi /usr/bin/mysql_secure_installation. Dopo averlo fatto, puoi eseguire i comandi da srayhunter sopra, quindi eseguire mysqladmin -u root -p'oldpassword' password newpassper utilizzare qualsiasi password desideri.
specialk1st

2
Il plug-in viene chiamato cracklib_password_checknell'attuale MariaDB.
czerny,

27
Nota: in MySQL 8.0.4, il plug-in validate_password è stato reimplementato come componente validate_password. Invece della query n. 2 sopra, esegui:UNINSTALL COMPONENT 'file://component_validate_password';
Aaron Cicali

4
mysql> SET GLOBAL validate_password_policy = 0;
JREAM,

41

Sto usando MySQL v 8.0.12 e il comando per disabilitare il componente di convalida della password è:

UNINSTALL COMPONENT 'file://component_validate_password';

Per installarlo nuovamente, il comando è:

INSTALL COMPONENT 'file://component_validate_password';

Se vuoi solo cambiare la politica del plugin di convalida della password:

SET GLOBAL validate_password.policy = 0;   // For LOW
SET GLOBAL validate_password.policy = 1;   // For MEDIUM
SET GLOBAL validate_password.policy = 2;   // For HIGH

34

Sulla base della risposta di Sharfi, modifica il file /etc/my.cnf e aggiungi solo questa riga:

validate_password_policy=LOW

Ciò dovrebbe neutralizzare sufficientemente la convalida come richiesto dal PO. Probabilmente vorrai riavviare mysqld dopo questa modifica. A seconda del tuo sistema operativo, sarebbe simile a:

sudo service mysqld restart

validate_password_policy accetta i valori 0, 1 o 2 o le parole LOW, MEDIUM e STRONG che corrispondono a quei numeri. Il valore predefinito è MEDIO (1) che richiede che le password contengano almeno una lettera maiuscola, una lettera minuscola, una cifra e un carattere speciale e che la lunghezza totale della password sia di almeno 8 caratteri. Passando a BASSO come suggerito qui, verificheremo solo la lunghezza, che se non è stata modificata tramite altri parametri ne controllerà una lunghezza di 8. Se si desidera ridurre anche quel limite di lunghezza, è possibile aggiungere validate_password_length a il file my.cnf.

Per ulteriori informazioni su livelli e dettagli, consultare il documento mysql .


Per MySQL 8, la proprietà è stata modificata da "validate_password_policy" a "validate_password.policy". Consulta il documento mysql aggiornato per le informazioni più recenti.


6
Se hai solo bisogno di una modifica temporanea, per consentire l'impostazione di una sola password, puoi utilizzareSET GLOBAL validate_password_policy=LOW;
Rikki

1
Questa è una soluzione migliore rispetto alla rimozione del modulo stesso.
Mrugesh Mistry,

2
mysql: variabile sconosciuta 'validate_password_policy = LOW'
Amalgovinus

2
Sembra che il nome della variabile sia cambiato nell'ultimo MySQL. @Amalgovinus, prova invece a utilizzare il nome della variabile "validate_password.policy" e vedi se funziona per te. E se lo fa, aggiornerò la mia risposta.
ktbos,

6

Per disabilitare il controllo della password in mariadb-10.1.24 (Fedora 24) ho dovuto commentare una riga nel file /etc/my.cnf.d/cracklib_password_check.cnf :

;plugin-load-add=cracklib_password_check.so

quindi riavviare il servizio mariadb:

systemctl restart mariadb.service

4

Puoi configurarlo nel file di configurazione mysql Apri /etc/my.cnffile In questo file tutte le righe che stanno configurando la politica password rendono quelle commentate come

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

Rimuovi il commento e modifica il valore delle proprietà che desideri modificare.


2

Se vuoi fare eccezioni, puoi applicare il seguente "hack". Richiede un utente con DELETEe INSERTprivilegio per mysql.plugintabella di sistema.

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

Dichiarazione di non responsabilità per la sicurezza di Bland: considera perché stai rendendo la tua password più breve o più semplice e forse potresti considerare di sostituirla con una più complessa. Tuttavia, capisco i momenti "sono le 3 del mattino e deve solo funzionare", assicurati solo di non creare un sistema di hack, per non farti hackerare


2

A seguito della risposta di ktbos:

Ho modificato il file mysqld.cnf e non è stato possibile avviare mysql. Si è scoperto che stavo modificando il file sbagliato!

Quindi assicurati che il file modificato contenga tag di segmento come [mysqld_safe] e [mysqld]. Sotto quest'ultimo ho fatto come suggerito e aggiunto la riga:

validate_password_policy=LOW

Questo ha funzionato perfettamente per risolvere il mio problema di non richiedere caratteri speciali all'interno della password.


1

Disinstallare:

mysql> uninstall plugin validate_password;

Un plug-in disinstallato non viene visualizzato da show plugins;

Installare:

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

Disabilitato dalla configurazione:

[mysqld]
validate_password = OFF

Un plugin può essere disabilitato dalla configurazione solo se installato.


0

Stavo riscontrando un problema su Ubuntu 18.04 su Mysql. Quando avevo bisogno di creare un nuovo utente, la politica era sempre alta.

Il modo in cui ho capito come disabilitare, per i futuri colleghi che vengono a indagare, è stato ridotto.

Accedi al server mysql come root

mysql -h localhost -u root -p

Imposta il nuovo tipo di convalida

SET GLOBAL validate_password_policy=0; //For Low

Riavvia mysql

sudo service mysql restart

1
È necessario scrivere questo comando "SET ..." nella shell mysql. Non colpire la shell.
Kodmanyagha,

0

In alcune installazioni, non è possibile eseguire questo comando fino a quando non è stata reimpostata la password di root. Non è possibile reimpostare la password di root fino a quando non si esegue questo comando. Cattura classica-22.

Una soluzione non menzionata da altri responder è quella di disabilitare temporaneamente il plugin tramite la configurazione di mysql. In qualunque my.cnf, nella [mysqld]sezione, aggiungi:

skip-validate_password=1

e riavvia il server. Modificare la password, reimpostare il valore su 0 e riavviare nuovamente.


questo non funziona. Puoi dire a quale versione di mysql si applica?
Dave Doga Oz,

0

Per riferimenti e futuro, si dovrebbe leggere il documento qui https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-password-validation.html

Quindi dovresti modificare il tuo mysqld.cnf file, ad esempio:

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

Quindi, aggiungi la parte [mysqld], la seguente:

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

Fondamentalmente, se modifichi il valore predefinito, sarà simile a:

[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

Quindi, è possibile riavviare:

systemctl restart mysql

Se dimentichi il plugin-load-add=validate_password.so parte, al riavvio si verificherà un errore.

Godere !


-1

Per mysql 8.0.7, vai alla tua directory mysql, quindi usa:

sudo bin/mysql_secure_installation

per configurare l'opzione password.


-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;

non è necessario arrestare / avviare mysql

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.