FreeBSD 14.1 RELEASE - MySQL - パスワード設定・他
- 1. 概要
- 2. パスワードの有効期限
- 3. validate_password
- 4. validate_password 無効化
- 5. validate_password 有効化
- 6. 日々のメンテナンス
1. 概要
パスワードに関する設定は、「my.cnf」に記述する内容もあるのですが、いささか面倒なこともあるので、ページを分けました。
ここでは、主にパスワードを単純化するような内容を書いていますが、開発時や私的につかうサーバのみに適用するようにしてください。
実際に他の人が使用するようなサーバでは、きちんとパスワードを利用するようにしないと、セキュリティ上、非常に問題があります。
本ページでは、パスワードなしの設定もできるようになっています。
お勧めはしませんが、「root」に対して、パスワードなしも設定できます。
本ページは、下記のサイトを参考にさせていただきました。
「mysql 8.0 でパスワードなしに設定する方法」
「MySQL の validate_password のルールをゆるくする」
「Mysql 5.7* パスワードを Policy に合わせるとめんどくさい件について」
「MySQL(5.7)メモ」
2. パスワードの有効期限
何も指定しなければ、「MySQL」のパスワードの有効期限はデフォルトで 360日なのだそうです。
ただし、デフォルトの設定で [mysqld] セクション、28行目に
default_password_lifetime = 0
という行があります。
これはパスワードの有効期限を無期限にする設定で、うっかり忘れると大変なことになりそうな気がします。
幸いなことに「ports」でインストールした場合、デフォルトで上記設定になっているようです。
3. validate_password
「validate_password」というプラグインが、「MySQL 5.6」あたりから、登場しています。
パスワードのチェックは、通常は「validate_password」で行うようです。
「validate_password」の値を見るには。
mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set (0.02 sec)
「MySQL 5.7」で、インストールされていたときのデフォルトの設定値は、以下の通り。
mysql> SHOW GLOBAL VARIABLES LIKE 'validate%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
「MySQL 8.0」で、確認すると。
mysql> SHOW GLOBAL VARIABLES LIKE 'validate%';
+-------------------------------------------------+--------+
| Variable_name | Value |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0 |
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+-------------------------------------------------+--------+
8 rows in set (0.00 sec)
微妙に違います。
「validate_password_policy」の設定値が、あれこれ左右するようで、以下のように設定されるようです。
設定値 | 意 味 | 備考 |
LOW | パスワードの長さのみチェック | |
MEDIUM | LOW に加えて、数字・小文字・大文字・特殊文字をそれぞれ1文字ずつ含む | |
STRONG | MIDIUM に加えて、4文字以上の文字列が辞書ファイルの内容と一致してはならない | |
パスワードの長さは、「validate_password_length」で最小文字数が定義されていますが、4より小さい値には設定できません。
4. validate_password 無効化
「validate_password」を無効化するには、「mysql」へ「root」ログインして。
UNINSTALL COMPONENT 'file://component_validate_password';
極端に言えば、無効化しておけば、パスワードなしの設定もできます。
SET PASSWORD FOR 'ユーザ名'@'localhost' = '';
5. validate_password 有効化
無効化した「validate_password」を有効化するには、「mysql」へ「root」ログインして。
INSTALL COMPONENT 'file://component_validate_password';
6. 日々のメンテナンス
その他、データベースのバックアップやリストア、ログの出力やローテーションについては「データベース - MySQL」の方へ掲載するようにしましたのでそちらをご参照ください。
|
|