MySQL 8.0 パスワード有効期限ポリシーの詳細な説明

MySQL 8.0 パスワード有効期限ポリシーの詳細な説明

MySQL 8.0.16 以降では、パスワードの有効期限ポリシーを設定できます。今日は、この小さな知識ポイントについて詳しく説明します。

1. パスワードの有効期限を手動で設定する

MySQL 8.0 では、alter user コマンドを使用してパスワードを期限切れにすることができます。

まずアカウントyeyzを作成します。パスワードはyeyzです。

[root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 -e "1を選択"
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
+---+
| 1 |
+---+
| 1 |
+---+

ここで期限切れにします:

mysql> ユーザー yeyz@'127.0.0.1' のパスワードの有効期限を変更します。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

もう一度接続を見てみましょう:

[root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 -e "1を選択"
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
--connect-expired-password オプションを使用するか、対話モードで mysql を起動してください。

-- --connect-expire-password コマンドで接続するように求められます。これを追加して確認してみましょう。[root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 --connect-expired-password -e "select 1" 
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
1 行目のエラー 1820 (HY000): このステートメントを実行する前に、ALTER USER ステートメントを使用してパスワードをリセットする必要があります。

-- ここでは、まずパスワードを変更するために alter user 構文を実行し、その後そのパスワードを使用するように求められます。

もちろん、パスワードの有効期限を手動で設定するだけでなく、パスワードを無期限に設定し、有効期限を指定することもできます。

-- パスワードを無期限に設定するmysql> create user yeyz1@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz1' password expire never;
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

-- パスワードの有効期限を指定された日数に設定します。mysql> create user yeyz2@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz2' password expire interval 90 day; 
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

グローバル パスワード有効期限ポリシーに従う場合は、default キーワードを使用できます。

mysql> create user yeyz3@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz3' password expire default;
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

この場合、パラメータ default_password_lifetime で設定された時間が尊重されます。

2. グローバルパスワードの有効期限を設定します。

すべてのパスワードに有効期限を設定する場合は、パラメータ default_password_lifetime を設定できます。デフォルト値は 0 で、自動パスワード有効期限は無効になります。 default_password_lifetime の値が正の整数 N の場合、許可されたパスワードの有効期間を日数で示し、パスワードは N 日ごとに変更する必要があります。

mysql> '%lifetime%' のような変数を表示します。
+---------------------------+-------+
| 変数名 | 値 |
+---------------------------+-------+
| デフォルトパスワードの有効期間 | 0 |
+---------------------------+-------+
セット内の 1 行 (0.00 秒)

3. グローバルパスワードの再利用時間と再利用間隔の数を設定する

ここでの再利用可能時間、再利用可能間隔、有効期限は異なる概念であることに注意してください。有効期限とは、パスワードがその時間に期限切れになり、使用できなくなることを意味します。再利用可能とは、履歴パスワードは指定された時間が経過した後、またはパスワードが指定された回数変更された後にのみ再利用できることを意味します。

単一のパスワードの再利用可能な時間、または再利用可能な間隔の数を次の方法で設定できます。

有効期限は、パスワードを変更する必要があるまでの期間を示します。

有効期限の回数は、新しいパスワードを設定できる回数を示します。

これら 2 つの関数では、それぞれパラメータ password_history と password_reuse_interval を使用する必要があります。

password_history パラメータをテストしてみましょう。

mysql> alter user yeyz@'127.0.0.1' を 'mysql_native_password' で 'yeyz' によって識別します。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

マイSQL> 
mysql> '%password_history%' のような変数を表示します。
+------------------+-------+
| 変数名 | 値 |
+------------------+-------+
| パスワード履歴 | 0 |
+------------------+-------+
セット内の 1 行 (0.00 秒)

mysql> グローバル password_history=2 を設定します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

-- 最初の変更、成功mysql> alter user yeyz@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz';
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

-- 2 回目の変更、エラーが報告されましたmysql> alter user yeyz@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz';
エラー 3638 (HY000): パスワード履歴ポリシーに矛盾するため、'[email protected]' のこれらの資格情報は使用できません。
マイSQL>

ご覧のとおり、最初は password_history パラメータが 0 に設定されています。これを 2 に変更します。これは、パスワード設定アクションを 2 回実行した後にのみ以前のパスワードを繰り返すことができることを意味します。つまり、今回変更されたパスワードは以前のパスワードと同じにすることはできません。次に、パスワードを同じパスワード「yeyz」に変更し始めました。 最初に変更したときは成功しました。 2 回目にパスワードを設定すると、エラー メッセージが表示されました。

この方法は、システム変数を通じて有効なパスワードの数を設定する方法です。

4. パスワードを再利用する時間と間隔を設定する

-- パスワードを 5 回ごとに再利用するように設定します。mysql> create user yeyz3@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz3' password history 5;
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

-- パスワードを 5 日ごとに再利用するように設定します。mysql> create user yeyz4@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz4' password use interval 5 day; 
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

-- パスワードを 5 日ごと、または 5 回ごとのいずれか厳しい方で再利用するように設定します。mysql> create user yeyz5@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz5' password use interval 5 day password history 5;
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

-- デフォルトのグローバル パスワード再利用ポリシー、つまり、パスワード履歴パラメータとパスワード再利用間隔パラメータを使用します。mysql> create user yeyz6@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz6' password use interval default password history default; 
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

以上がMySQL 8.0のパスワード有効期限ポリシーの詳細な説明です。MySQL 8.0のパスワード有効期限ポリシーの詳細については、123WORDPRESS.COMの他の関連記事にご注目ください。

以下もご興味があるかもしれません:
  • MySQL の安全なパスワード入力のいくつかの操作の紹介
  • MySQL 5.6 でセキュア処理パスワードを変更する方法
  • MySQL8のパスワードを忘れた場合の簡単な解決策
  • Mac で MySQL 8.0.22 のパスワードを取得する方法
  • MySQLでルートユーザーのパスワードを変更する方法
  • MySQLはパスワードなしでログインする例を実装しています
  • Linux mysql-5.6 でルート パスワードをリセットする方法
  • MySQLを安全にシャットダウンする方法
  • MySQLプロセスを安全かつ適切にシャットダウンする方法
  • 年末ですが、MySQL パスワードは安全ですか?

<<:  Win10にnginxをインストールして設定するプロセス

>>:  vue+element カスタムクエリコンポーネント

推薦する

vue3 カスタムディレクティブの詳細

目次1. カスタム指示の登録1.1. グローバルカスタム指示1.2. ローカルカスタム指示2. カス...

HTML テーブルタグチュートリアル (44): テーブルヘッダータグ

<br />ソース コード内で表の構造を明確に区別するために、HTML 言語では、表のヘ...

Docker イメージ管理の一般的な操作コード例

ミラーリングも Docker のコアコンポーネントの 1 つです。ミラーリングはコンテナ操作の基盤で...

Nginx_geo モジュールを使用して CDN スケジュールを設定する方法

NginxのGeoモジュールの紹介geo ディレクティブは、ngx_http_geo_module ...

クラウド決済を実装するWeChatミニプログラムについて

目次1. はじめに2. 思考分析3. クラウド決済のケーススタディ1. クラウド機能1-1. 認証不...

MySQL ストアド プロシージャ関連の権限変更の問題

MySQL データベースを使用すると、他のユーザーが定義したストアド プロシージャを他のユーザーが変...

Linux で NFS ファイル共有サーバーを構築するための詳細な手順

Linux が NFS サーバーを構築異なるオペレーティング システム間でデータを共有するために、通...

HTML に埋め込まれた Flash HTML ウェブページ コードに Flash ファイルを埋め込むソリューション (パート 1)

中国の習慣では、旧暦の1月15日より前に新年を祝います。ここで、庭にいる友人たちに新年の幸せを祈りた...

「MySQL サービスを開始できません エラー 1069」を解決する方法

今日、外出中に同僚から、ウェブサイトのバックエンドにアクセスできないというメッセージが届きました。と...

Jenkinsを使用してプロジェクトを別のホストにデプロイするプロセス

環境ホスト名IPアドレス仕えるジェンキンス192.168.216.200トムキャット、ジェンキンスサ...

JavaScript キャンバス テキスト クロック

この記事では、テキストクロックを実装するためのキャンバスの具体的なコードを例として紹介します。具体的...

Alibaba Cloud で静的ウェブサイトを素早く構築する方法

序文:ジュニアプログラマーとして、私は自分自身の個人ウェブサイトを構築し、それを他の人に見せることを...

Linux で SpringBoot jar プログラム デプロイメント シェル スクリプトを起動および停止する方法

では早速、コードをお見せしましょう。具体的なコードは次のとおりです。 #!/bin/bash cd ...

デザイナーが再びハマーの公式サイトに不満を述べる

昨年、この公開書簡は大ヒットし、羅永浩氏を驚かせた。今日、著者が新しい章を発表するとは思ってもみなか...

jsでユーザー登録機能を実装する

この記事の例では、ユーザー登録機能を実装するためのjsの具体的なコードを参考までに共有しています。具...