Vyhledávání na webu

Jak opravit chybu "MySQL ERROR 1819 (HY000):" v Linuxu


Při vytváření uživatele MySQL s relativně slabým heslem se můžete setkat s chybou „Chyba MySQL 1819 (HY000): Vaše heslo nesplňuje aktuální požadavky zásad“. Technicky se nejedná o chybu, ale o upozornění, že používáte heslo, které nesplňuje doporučené požadavky zásad hesel.

Jinými slovy, používáte slabé heslo, které lze snadno uhodnout nebo vynutit hrubou silou. Vestavěný bezpečnostní mechanismus odrazuje uživatele od vytváření slabých hesel, která mohou způsobit, že vaše databáze bude náchylná k narušení.

Například jsem narazil na chybu při vytváření uživatele, jak je znázorněno

mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;

Není jasné, že heslo je extrémně slabé a může představovat bezpečnostní riziko.

Jak vyřešit chybu MySQL 1819 (HY000) v Linuxu

Databáze MySQL se dodává s pluginem validate_password, který, pokud je povolen, vynucuje zásady ověřování hesla. Plugin vynucuje 3 úrovně zásad ověřování hesel.

  • NÍZKÁ: Umožňuje uživatelům nastavit heslo o délce 8 nebo méně znaků.
  • STŘEDNÍ: Umožňuje uživatelům nastavit heslo o délce 8 nebo méně znaků se smíšenými velkými a speciálními znaky.
  • STRONG: Umožňuje uživatelům nastavit heslo, které má všechny atributy hesla střední úrovně se zahrnutím souboru slovníku.

Ve výchozím nastavení jsou zásady hesla nastaveny na STŘEDNÍ. Úroveň zásad hesla můžete potvrdit provedením příkazu:

SHOW VARIABLES LIKE 'validate_password%';

Pokud spustíte příkaz a získáte výstupní prázdnou sadu, plugin ještě není povolen.

Chcete-li povolit plugin validate_password, spusťte níže uvedené příkazy.

mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
mysql> install plugin validate_password soname 'validate_password.so';

Chcete-li potvrdit, že je plugin aktivován, spusťte příkaz.

mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';

Měli byste získat výstup zobrazený níže:

Chcete-li problém vyřešit, musíte nastavit zásady ověřování hesla na nejnižší úroveň. Vím, že to zní neintuitivně, protože to vytváří cestu pro nastavení slabých hesel, která mohou v konečném důsledku způsobit, že vaši databázi napadnou hackeři.

Pokud však stále trváte na svém, můžete udělat toto.

Jak změnit zásady ověřování hesla MySQL

Chcete-li vyřešit chybu MySQL ERROR 1819 (HY000), nastavte nižší zásady ověřování hesla, jak je uvedeno na obrázku.

mysql> SET GLOBAL validate_password_policy=LOW;
OR
mysql> SET GLOBAL validate_password_policy=0;

Poté můžete potvrdit úroveň zásad ověřování hesla.

SHOW VARIABLES LIKE 'validate_password%';

Nyní můžete pokračovat a přiřadit relativně slabé heslo dle vašeho přání.

mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;

Chcete-li se vrátit na úroveň zásad hesla „MEDIUM“, jednoduše vyvolejte příkaz:

mysql> SET GLOBAL validate_password_policy=MEDIUM;
Závěr

Osobně bych ze zřejmých důvodů nedoporučoval nastavovat zásady pro hesla nižší úrovně. Ať už se jedná o běžného uživatele nebo uživatele databáze, doporučuje se vždy nastavit silné heslo MySQL s více než 8 znaky s kombinací velkých, malých písmen, čísel a speciálních znaků.

Tato příručka je určena pro ty, kteří chtějí vědět, jak se v takové chybě orientovat, jinak se vždy doporučuje nastavit silné heslo.