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: [エラー] 不明なオプション '--skip-grant-tables'

MySQL データベースがエラー 1045 (28000): ユーザー 'ODBC'...

VMware仮想マシンを使用してUbuntu 20.04をインストールする完全なチュートリアル

Ubuntu は比較的人気のある Linux デスクトップ システムです。最近、Ubuntu 20....

デザイナーの「職業病」について

デザイナーは世界で最も繊細で感情的な人々だと私はいつも感じています。私がこう言うときに優越感を感じる...

マークアップ言語 - アンカー

前: マークアップ言語 - フレーズ要素 オリジナルソース 第 7 章 アンカーHTML のリンクの...

Vueはechart円グラフの凡例のパーセンテージを表示するメソッドを実装します

この記事では主に、echart を使用してパーセンテージを表示する Vue の円グラフデータ部分を紹...

Fabric.js は DIY ポストカード機能を実装します

この記事では、DIYポストカード機能を実現するためのfabricjsの具体的なコードを参考までに共有...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...

HTML テーブル マークアップ チュートリアル (40): ヘッダーの暗い境界線の色属性 BORDERCOLORDARK

テーブルヘッダーでは、暗い境界線の色を個別に定義できます。基本的な構文<TH 境界線の色を暗く...

React Stateの状態とライフサイクルの実装方法

1. コンポーネントの実装方法:組件名稱首字母必須大寫1. JS関数を通じてコン​​ポーネントを実装...

Tencent Cloud Serverの構築方法を説明します(グラフィックチュートリアル)

この記事は元々ブロガーのWeiwei Miaoによって書かれたものです。ブログホームページ: htt...

JSにおけるデータ型の正しい判定方法の例

目次序文typeof は型を正しく判別できますか? instanceof は型を正しく判別できますか...

HTML外部参照CSSファイルが効果を発揮しない理由の分析と解決

フロントエンドの初心者として、私は数日間フロントエンドをいじってみました。 。今日、私は自分が固く信...

JS での矢印関数と this の記述と理解

目次序文1. JSで関数を書く方法1. 通常の関数の書き方2. 矢印関数の書き方2. 通常の関数でこ...

MySQL では SQL ステートメントはどのように実行されますか?

目次1. MySQLアーキテクチャの分析1.1 コネクタ1.2 クエリキャッシュ1.3 アナライザー...

Linux でも利用できる人気の Windows アプリ 10 選

データ分析会社Net Market Shareによると、Linuxデスクトップオペレーティングシステ...