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 カスタムクエリコンポーネント

推薦する

MySQL の frm ファイルからテーブル構造を復元する 3 つの方法 [推奨]

mysql が正常に実行されている場合、テーブル構造を表示することは難しくありません。しかし、場合...

three.js を使用してクールなアシッドスタイルの 3D ページ効果を実現します

この記事では、主にReact + three.jsテクノロジースタックを使用して3Dモデルの読み込み...

Zabbix 5.0 ディスク自動検出と読み取り/書き込み監視の問題を分析する

ディスクを自動的に検出する構成キーの値注: このキー値は Linux プラットフォームでのみサポート...

Nginx の負荷分散アルゴリズムとフェイルオーバー分析

概要Nginx ロード バランシングは、アップストリーム サーバー (実際のビジネス ロジックによっ...

ChromeはCookieの変更を監視し、値を割り当てます

次のコードは、Chrome による Cookie の変更の監視を導入しています。コードは次のとおりで...

VMware 仮想マシンに Android x86 をインストールする方法

アプリをテストしたいが、それを携帯電話で実行したくない場合があります。この場合、仮想マシンを使用して...

HTML テーブルの境界線を設定する際のヒント

HTML を初めて使用する多くの人にとって、テーブル <table> は最もよく使用され...

1分でVueが右クリックメニューを実装

目次レンダリングインストールコードの実装カスタムスタイル要約する効率的に要件を満たし、車輪の再発明を...

Vue 3 カスタムディレクティブ開発の概要

指令とは何ですか? Angular と Vue はどちらもディレクティブの概念を持っており、これは通...

IDEA に基づいて Tomcat サーバーを展開するための詳細な手順

目次導入ステップ1ステップ2: アイデアで動的Webプロジェクトを作成するステップ3: Tomcat...

HTML5+CSS3コーディング標準

黄金律プロジェクトに何人の人が取り組んでいるかに関係なく、すべてのコード行が同じ人によって書かれたよ...

アルバムと写真をアルバムに保存するためのWeChatアプレット

私は現在、Xiao Nian Gao に似たビデオおよびツール アプリを開発しています。ユーザーが作...

Linux での Docker のインストールと展開の例

以下の記事を読んだ後、プロジェクトをサーバーにデプロイできます。Tomcat、JDK、MySQL な...

iframe を使用して Web ページに天気の影響を表示します

CS: ...コードをコピーコードは次のとおりです。 *{マージン:0;パディング:0;リストスタイ...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...