MySQL şifre doğrulamasını nasıl kapatabilirim?


153

Yanlışlıkla MySQL 5.7'de şifre doğrulama eklentisini yüklemiş olabilirim. Bu eklenti, tüm şifreleri belirli kurallara uymaya zorlar gibi görünüyor.

Bunu kapatmak istiyorum.

Burada boşuna önerilen validate_password_length değişkenini değiştirmeyi denedim .

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

Eklentiyi kaldırmak veya bir şekilde kısırlaştırmak istiyorum.


9
Politika ayarını değiştirmeyi denediniz mi? SET GLOBAL validate_password_policy=LOW;
Rikki

1
SET GLOBAL validate_password.policy=LOW;
belgacea

Yanıtlar:


431

Doğrulama şifre eklentisini kaldırmak için yaptığım şey:

  1. MySQL sunucusuna root olarak giriş yapın mysql -h localhost -u root -p
  2. Aşağıdaki sql komutunu çalıştırın: uninstall plugin validate_password;
  3. Son satır çalışmazsa (yeni mysql sürümü), UNINSTALL COMPONENT 'file://component_validate_password';

Bu çözümü bir üretim sistemi için önermem. Bu çözümü yerel bir mysql örneğinde yalnızca geliştirme amacıyla kullandım.


18
yeniden etkinleştirmek için aşağıdaki komutu kullanın: INSTALL PLUGIN validate_password SONAME 'validate_password.so';
vchrizz

8
Eklentiyi kaldırmak için en az bir kez grep 'password' /var/log/mysqld.log | tail -1ve sonra güvenli bir şifre ayarlamanız gerekir /usr/bin/mysql_secure_installation. Bunu yaptıktan sonra yukarıdaki srayhunter komutlarını çalıştırabilir ve ardından mysqladmin -u root -p'oldpassword' password newpassistediğiniz herhangi bir şifreyi kullanabilirsiniz.
specialk1st

2
Eklenti cracklib_password_checkmevcut MariaDB'de çağrılır .
czerny

27
Not: MySQL 8.0.4'te validate_password eklentisi validate_password bileşeni olarak yeniden uygulanmıştır. Yukarıdaki # 2 sorgusu yerine, şunu çalıştırın:UNINSTALL COMPONENT 'file://component_validate_password';
Aaron Cicali

4
mysql> SET GLOBAL validate_password_policy = 0;
JREAM

41

MySQL v 8.0.12 kullanıyorum ve şifre doğrulama bileşenini devre dışı bırakma komutu :

UNINSTALL COMPONENT 'file://component_validate_password';

Tekrar yüklemek için komut:

INSTALL COMPONENT 'file://component_validate_password';

Sadece şifre doğrulama eklentisi politikasını değiştirmek istiyorsanız :

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

Sharfi'nin cevabına dayanarak, /etc/my.cnf dosyasını düzenleyin ve sadece bu satırı ekleyin:

validate_password_policy=LOW

Bu, OP tarafından talep edilen onaylamayı yeterince kısırlaştırmalıdır. Muhtemelen bu değişiklikten sonra mysqld'i yeniden başlatmak isteyeceksiniz. İşletim sisteminize bağlı olarak, şuna benzer:

sudo service mysqld restart

validate_password_policy, 0, 1 veya 2 değerlerini veya bu sayılara karşılık gelen LOW, MEDIUM ve STRONG kelimelerini alır. Varsayılan, en az bir büyük harf, bir küçük harf, bir rakam ve bir özel karakter içeren ve toplam şifre uzunluğunun en az 8 karakter olduğu MEDIUM (1) şeklindedir. Burada önerdiğim gibi DÜŞÜK olarak değiştirmek, yalnızca diğer parametreler yoluyla değiştirilmediyse 8 uzunluğunu kontrol edecek olan uzunluğu kontrol edecektir. Bu uzunluk sınırını da kısaltmak istiyorsanız, my.cnf dosyası.

Seviyeler ve detaylar hakkında daha fazla bilgi için mysql belgesine bakınız .


MySQL 8 için, mülk "validate_password_policy" yerine "validate_password.policy" olarak değişmiştir. En son bilgiler için güncellenmiş mysql belgesine bakın .


6
Yalnızca geçici bir değişikliğe ihtiyacınız varsa, tek bir parolanın ayarlanmasına izin vermek için aşağıdakileri kullanabilirsinizSET GLOBAL validate_password_policy=LOW;
Rikki

1
Bu, modülün kendisini kaldırmaktan daha iyi bir çözümdür.
Mrugesh Mistry

2
mysql: bilinmeyen değişken 'validate_password_policy = DÜŞÜK'
Amalgovinus

2
Değişken adı en son MySQL'de değişmiş gibi görünüyor. @Amalgovinus, bunun yerine "validate_password.policy" değişken adını kullanmayı deneyin ve bunun sizin için işe yarayıp yaramadığına bakın. Ve eğer olursa cevabımı güncelleyeceğim.
ktbos

6

Mariadb-10.1.24 devre dışı bırakın şifre kontrolleriyle (Fedora 24) için ben bir satırı yorum vardı /etc/my.cnf.d/cracklib_password_check.cnf dosyası:

;plugin-load-add=cracklib_password_check.so

ardından mariadb hizmetini yeniden başlatın:

systemctl restart mariadb.service

4

Bunu mysql yapılandırma dosyası açık /etc/my.cnfdosyasında yapılandırabilirsiniz Bu dosyada parola ilkesini yapılandıran tüm satırlar

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

Değiştirmek istediğiniz özelliklerin değerini kaldırın ve değiştirin.


2

İstisnalar yapmak istiyorsanız, aşağıdaki "hack" i uygulayabilirsiniz. Sistem tablosuna sahip bir kullanıcı DELETEve INSERTayrıcalık gerektirir mysql.plugin.

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

Mülayim güvenlik sorumluluk reddi: Parolanızı neden daha kısa veya daha kolay hale getirdiğinizi düşünün ve belki de daha karmaşık olanla değiştirmeyi düşünün. Ancak, anladım "03:00 ve sadece çalışması gerekiyor" anları, sadece bir kesmek sistemi inşa etmediğinizden emin olun, kendiniz saldırıya uğramak için


2

Ktbos'un cevabına ek olarak:

Mysqld.cnf dosyasını değiştirdim ve mysql başlatılamadı. Yanlış dosyayı değiştirdiğim ortaya çıktı!

Bu nedenle, değiştirdiğiniz dosyanın [mysqld_safe] ve [mysqld] gibi segment etiketleri içerdiğinden emin olun. İkincisinin altında önerildiği gibi yaptım ve satırı ekledim:

validate_password_policy=LOW

Bu, şifre içinde özel karakterler gerektirmeme sorunumu çözmek için mükemmel çalıştı.


1

Kaldırma:

mysql> uninstall plugin validate_password;

Kaldırılmış bir eklenti tarafından görüntülenmiyor show plugins;

Yüklemek:

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

Yapılandırma tarafından devre dışı bırakıldı:

[mysqld]
validate_password = OFF

Bir eklenti, yalnızca yüklüyse yapılandırma ile devre dışı bırakılabilir.


0

Mysql Ubuntu 18.04 bir sorun yaşıyordu. Yeni bir kullanıcı oluşturmam gerektiğinde politika her zaman yüksekti.

Araştırmaya gelecek gelecek meslektaşları için nasıl devre dışı bırakılacağımı anlamaya çalışmıyorum.

MySQL sunucusuna root olarak giriş yapın

mysql -h localhost -u root -p

Yeni doğrulama türünü ayarlama

SET GLOBAL validate_password_policy=0; //For Low

MySQL'i yeniden başlat

sudo service mysql restart

1
Bu "SET ..." komutunu mysql kabuğuna yazmalısınız. Kabuğu basmak için değil.
kodmanyagha

0

Bazı kurulumlarda, kök parolayı sıfırlayana kadar bu komutu yürütemezsiniz. Bu komutu yürütene kadar kök parolayı sıfırlayamazsınız. Klasik Yakalama-22.

Diğer yanıtlayıcılar tarafından belirtilmeyen bir çözüm, eklentiyi mysql yapılandırması yoluyla geçici olarak devre dışı bırakmaktır. Herhangi birinde my.cnf, içinde [mysqld]bölüm ekleyin:

skip-validate_password=1

ve sunucuyu yeniden başlatın. Parolayı değiştirin ve değeri tekrar 0 olarak ayarlayın ve yeniden başlatın.


bu işe yaramıyor. Bunun hangi mysql sürümü için geçerli olduğunu söyleyebilir misiniz?
Dave Doga Oz

0

Referanslar ve gelecek için burada dokümanı okumalısınız https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-password-validation.html

Ardından mysqld.cnfdosyanızı düzenlemelisiniz , örneğin:

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

Ardından, [mysqld] bölümüne aşağıdakileri ekleyin:

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

Temel olarak, varsayılanınızı düzenlerseniz, şuna benzer:

[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

Ardından, yeniden başlatabilirsiniz:

systemctl restart mysql

Parçayı unutursanız, plugin-load-add=validate_password.soyeniden başlatma sırasında bir hata yaparsınız.

Zevk almak !


-1

Mysql 8.0.7 için mysql dizininize gidin ve şunu kullanın:

sudo bin/mysql_secure_installation

Parola seçeneğini yapılandırmak için


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

MySQL'i durdurmaya / başlatmaya gerek yok

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.