mysqlパスワード検証をオフにするにはどうすればよいですか?


153

MySQL 5.7でパスワード検証プラグインを誤ってロードしたようです。このプラグインは、すべてのパスワードを特定のルールに強制的に準拠させるようです。

これをオフにしたいと思います。

ここで提案されているように、validate_password_length変数を無効に変更してみました。

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

プラグインをアンロードするか、どういうわけかそれを無効にしたいと思います。


9
ポリシー設定を変更してみましたか?SET GLOBAL validate_password_policy=LOW;
Rikki

1
SET GLOBAL validate_password.policy=LOW;
ベルギー産

回答:


430

パスワード検証プラグインを削除する方法は次のとおりです。

  1. MySQLサーバーにrootとしてログインします。 mysql -h localhost -u root -p
  2. 次のsqlコマンドを実行します。 uninstall plugin validate_password;
  3. 最後の行が機能しない場合(新しいmysqlリリース)、実行する必要があります UNINSTALL COMPONENT 'file://component_validate_password';

このソリューションは、運用システムにはお勧めしません。このソリューションは、ローカルのmysqlインスタンスで開発目的でのみ使用しました。


18
:再びそれを再有効化するには、以下のコマンドを使用します INSTALL PLUGIN validate_password SONAME 'validate_password.so';
vchrizz

8
プラグインを削除するには、少なくとも一度経由して安全なパスワードを設定する必要がありますgrep 'password' /var/log/mysqld.log | tail -1し、その後/usr/bin/mysql_secure_installation。これを行った後、上記のsrayhunterからコマンドを実行mysqladmin -u root -p'oldpassword' password newpassし、実行して任意のパスワードを使用できます。
specialk1st

2
プラグインはcracklib_password_check現在のMariaDBで呼び出されます。
czerny 2017

27
注:MySQL 8.0.4では、validate_passwordプラグインがvalidate_passwordコンポーネントとして再実装されました。:代わりに実行し、上記の#2クエリのUNINSTALL COMPONENT 'file://component_validate_password';
アーロンCicali

4
mysql> SET GLOBAL validate_password_policy = 0;
JREAM 2018

41

MySQL v 8.0.12を使用していますが、パスワード検証コンポーネントを無効にするコマンドは次のとおりです。

UNINSTALL COMPONENT 'file://component_validate_password';

それを再度インストールするには、コマンドは次のとおりです。

INSTALL COMPONENT 'file://component_validate_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

Sharfiからの回答に基づいて、/ etc / my.cnfファイルを編集し、次の1行だけを追加します。

validate_password_policy=LOW

これにより、OPからの要求に応じて検証が十分に無効になります。この変更後にmysqldを再起動することをお勧めします。OSに応じて、次のようになります。

sudo service mysqld restart

validate_password_policyは、0、1、2のいずれかの値、またはこれらの数値に対応するLOW、MEDIUM、およびSTRONGのいずれかの値を取ります。デフォルトはMEDIUM(1)で、パスワードには少なくとも1つの大文字、1つの小文字、1つの数字、および1つの特殊文字が含まれている必要があり、パスワードの合計の長さは少なくとも8文字です。ここで提案するようにLOWに変更すると、長さのみがチェックされます。他のパラメータで変更されていない場合は、長さ8がチェックされます。長さの制限も短くしたい場合は、validate_password_lengthをに追加することもできます。 my.cnfファイル。

レベルと詳細の詳細については、mysql docを参照してください。


MySQL 8の場合、プロパティは「validate_password_policy」から「validate_password.policy」に変更されました。最新の情報については、更新されたmysqlドキュメントをご覧ください。


6
一時的な変更のみが必要な場合、単一のパスワードを設定できるようにするには、次のように使用できますSET GLOBAL validate_password_policy=LOW;
Rikki

1
これは、モジュール自体を削除するよりも優れたソリューションです。
Mrugesh Mistry

2
mysql:不明な変数 'validate_password_policy = LOW'
Amalgovinus

2
最新のMySQLでは変数名が変更されているようです。@Amalgovinus、代わりに変数名「validate_password.policy」を使用してみて、それが機能するかどうかを確認してください。もしそうなら、私は私の答えを更新します。
ktbos 2018

6

mariadb-10.1.24(Fedora 24)でパスワードチェックを無効にするには、/ etc / my.cnf.d / cracklib_password_check.cnfファイルの行をコメント化する必要がありました。

;plugin-load-add=cracklib_password_check.so

その後、mariadbサービスを再起動します。

systemctl restart mariadb.service

4

これはmysql構成ファイルで構成できます。ファイルを開く/etc/my.cnfこのファイルでは、パスワードポリシーを構成するすべての行でコメントを作成します。

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

変更するプロパティのコメントを外して値を変更します。


2

例外を設ける場合は、次の「ハック」を適用できます。それは持つユーザが必要ですDELETEINSERTの特権mysql.pluginシステムテーブルを。

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

Blandのセキュリティに関する免責事項:なぜパスワードを短くしたり簡単にしたりするのかを考え、おそらくより複雑なパスワードに置き換えることを検討してください。ただし、私は「午前3時で動作する必要がある」瞬間を理解しています。ハッキングのシステムを構築しないでください。自分がハッキングされないようにしてください。


2

ktbosからの回答に加えて:

mysqld.cnfファイルを変更しましたが、mysqlを起動できませんでした。間違ったファイルを変更していることがわかりました!

したがって、変更するファイルに[mysqld_safe]や[mysqld]などのセグメントタグが含まれていることを確認してください。後者の下で私は提案されたようにして、行を追加しました:

validate_password_policy=LOW

これは、パスワードに特殊文字を必要としないという私の問題を解決するために完全に機能しました。


1

アンインストール:

mysql> uninstall plugin validate_password;

アンインストールされたプラグインは表示されません show plugins;

インストール:

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

構成によって無効化:

[mysqld]
validate_password = OFF

プラグインは、インストールされている場合にのみ、構成によって無効にできます。


0

MysqlのUbuntu 18.04で問題が発生していました。新しいユーザーを作成する必要があるとき、ポリシーは常に高かった。

調査に来た将来の同僚のために、私が無効にする方法を理解する方法は低く設定されていました。

MySQLサーバーにrootとしてログインします。

mysql -h localhost -u root -p

新しいタイプの検証を設定する

SET GLOBAL validate_password_policy=0; //For Low

mysqlを再起動します

sudo service mysql restart

1
この「SET ...」コマンドをmysqlシェルに書き込む必要があります。シェルをバッシュしないでください。
kodmanyagha 2018

0

一部のインストールでは、ルートパスワードをリセットするまでこのコマンドを実行できません。このコマンドを実行するまで、ルートパスワードをリセットできません。クラシックキャッチ-22。

他のレスポンダが言及していない解決策の1つは、mysql設定を介してプラグインを一時的に無効にすることです。いずれにおいてもmy.cnf、中[mysqld]節、追加します。

skip-validate_password=1

サーバーを再起動します。パスワードを変更し、値を0に戻して、再起動します。


これは機能しません。これが該当するmysqlのバージョンについて言及できますか?
Dave Doga Oz

0

参考情報と将来については、こちらのドキュメントをお読みくださいhttps://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-password-validation.html

次にmysqld.cnf、たとえばファイルを編集する必要があります。

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

次に、[mysqld]部分に以下を追加します。

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

基本的に、デフォルトを編集すると、次のようになります。

[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

その後、再起動できます。

systemctl restart mysql

plugin-load-add=validate_password.soパーツを忘れると、再起動時にエラーになります。

楽しい !


-1

mysql 8.0.7の場合は、mysqlディレクトリに移動して、次を使用します。

sudo bin/mysql_secure_installation

パスワードオプションを設定します。


-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を停止/開始する必要はありません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.