MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

6.2.19 アカウントロック

MySQL では、CREATE USER および ALTER USER ステートメントの ACCOUNT LOCK 句および ACCOUNT UNLOCK 句を使用したユーザーアカウントのロックおよびロック解除がサポートされています:

アカウントのロック状態は、mysql.user システムテーブルの account_locked カラムに記録されます。 SHOW CREATE USER からの出力には、アカウントがロックされているかロック解除されているかが示されます。

クライアントがロックされたアカウントに接続しようとすると、試行は失敗します。 サーバーは、ロックされたアカウントへの接続試行回数を示す Locked_connects ステータス変数を増分し、ER_ACCOUNT_HAS_BEEN_LOCKED エラーを返して、エラーログにメッセージを書き込みます:

Access denied for user 'user_name'@'host_name'.
Account is locked.

アカウントをロックしても、ロックされたアカウントのアイデンティティを想定するプロキシユーザーを使用して接続できることには影響しません。 また、ロックされたアカウントを指定する DEFINER 属性を持つストアドプログラムまたはビューを実行する機能にも影響しません。 つまり、プロキシ設定されたアカウント、ストアドプログラムまたはビューを使用する機能は、アカウントをロックしても影響を受けません。

アカウントロック機能は、mysql.user システムテーブルに account_locked カラムが存在するかどうかによって異なります。 5.7.6 より古い MySQL バージョンからのアップグレードの場合は、MySQL のアップグレード手順を実行して、このカラムが存在することを確認します。 セクション2.11「MySQL のアップグレード」を参照してください。 account_locked カラムがないアップグレードされていないインストールの場合、サーバーはすべてのアカウントをロック解除済として扱い、ACCOUNT LOCK 句または ACCOUNT UNLOCK 句を使用するとエラーが発生します。