10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国Ltr)- 26.8 mb
PDF (A4)- 26.8 mb


6.3.6パスワドの期限切れとサンドボックスモド

MySQL 5.6では,データベース管理者がアカウントのパスワードを期限切れにして,ユーザーに自分のパスワードをリセットするように要求できるパスワード期限切れ機能が導入されています。直後の説明では,パスワ。そのあと,どの機能がどのような状況で使用できるのかを理解する際に役立つ背景として,この機能の開発について,複数のバージョンにわたって詳細に説明します。ただし,すべての機能と修正を活用できるようにするには,可能なかぎり,MySQL 5.6の最新バージョンを使用するようにしてください。

パスワドの期限切れの動作

アカウントのパスワドを期限切れにするには,改变用户ステトメントを使用します。例:

@'localhost'密码过期;

このステトメントは,password_expiredカラムを“Y”に設定することで,指定されたアカウントに関連付けられたmysql.userテブルの行を変更します。これにより,アカウントが開いている現在の接続は影響を受けません。そのアカウントを使用する後続の各接続では,サ,バ,はクラ,サンドボックスモドでクライアントを処理します。このモードでは,期限切れのパスワードをリセットするために必要な操作のみが,サーバーからクライアントに許可されます。(サーバーで実行されるアクションは,クライアントとサーバー両方の設定に依存します)。

サバがクラアントを切断すると,ER_MUST_CHANGE_PASSWORD_LOGINエラが返されます。

shell> mysql -u myuser -p Password: ****** ERROR 1862 (HY000): Your Password has expired。要登录,必须使用支持过期密码的客户端进行更改。

サーバーがクライアントをサンドボックスモードに移行すると,これらの操作がクライアントセッション内で許可されます。

  • クラ邮箱アントは设置密码を使用して,アカウントのパスワドをリセットできます。これは,password_expiredカラムを“N”に設定することで,現在のアカウントに関連付けられたmysql.userテブルの行を変更します。パスワードがリセットされると,サーバーはそのセッション,およびアカウントを使用する後続の接続への通常のアクセスをリストアします。

    パスワドを現在の値に設定すれば,リセットできます。適切なポリシとして,別のパスワドを選択することをお勧めします。

  • クラ邮箱アントはステトメントを使用できます。たとえば,old_passwordsシステム変数をデフォルトとは異なる値に設定する必要のあるハッシュ化形式がアカウントのパスワードで使用されている場合は,パスワードをリセットする前に,これが必要になることがあります。

セッション内で許可されていない操作の場合,サバはER_MUST_CHANGE_PASSWORDエラを返します。

mysql>使用测试;错误1820 (HY000):你必须在执行此语句之前设置密码

すでに説明したように,サーバーがパスワードの期限が切れているクライアントを切断するのか,サンドボックスモードに移行するのかは,クライアント設定とサーバー設定の組み合わせによって異なります。次の説明では,関連する設定と,それらがどのように相互作用するのかにいて記述します。

クライアント側では,特定のクライアントが期限切れパスワードに対してサンドボックスモードを処理できるかどうかを示します。Cクライアントライブラリを使用するクライアントの場合,これを実行するための方法が2つあります。

  • 接続前にMYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDSフラグをmysql_options ()に渡します。

    Arg = 1;结果= mysql_options(mysql, MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, &arg);
  • 接続時にCLIENT_CAN_HANDLE_EXPIRED_PASSWORDSフラグをmysql_real_connect ()に渡します。

    mysql = mysql_real_connect(mysql,主机,用户,密码,"test",端口,unix_socket, CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS);

その他のMySQLコネクタには,サンドボックスモードを処理する準備ができていることを示す独自の規則が用意されています。関連するコネクタのドキュメントを参照してください。

サーバー側では,クライアントが期限切れパスワードを処理できることを示している場合,サーバーはサンドボックスモードに移行します。

クライアントが期限切れパスワードを処理できることを示していない場合(または,そのように示すことができない古いバージョンのクライアントライブラリを使用している場合),サーバーのアクションはdisconnect_on_expired_passwordシステム変数の値によって異なります。

  • disconnect_on_expired_passwordが有効になっている(デフォルト)場合,サアントを切断し,ER_MUST_CHANGE_PASSWORD_LOGINエラを返します。

  • disconnect_on_expired_passwordが無効になっている場合,サバはクラ。

前述のクラ。クライアントが期限切れでないパスワードを使用して接続すれば,サーバーはクライアントを通常どおりに処理します。

パスワドの期限切れ機能の開発

次のタopenstackムラopenstackンには,さまざまなパスワopenstackドの期限切れ機能が追加されたバopenstackジョンを記載します。

MySQL 5.6.6:パスワドの期限切れの初期実装

Dbaがアカウントのパスワドを期限切れにすることができるように,password_expiredカラムがmysql.userテブルに導入されました。このカラムのデフォルト値は,“N”(期限切れなし)です。

password_expiredカラムを“Y”に設定するためのSQL数据库ンタフェスとして,改变用户ステトメントが導入されました。

期限切れパスワドを持アカウントを使用して接続すると,设置密码ステトメントのみが許可されるサンドボックスモドに移行します。その他のステトメントの場合,サはER_MUST_CHANGE_PASSWORDエラを返します。この目的は,サーバーでその他の操作が許可される前に,クライアントにパスワードのリセットを強制することです。设置密码はアカウントのパスワドをリセットし,password_expired“N”に設定します。

初期実装には,改变用户を使用するとmysql.userテブル内の密码カラムが空の文字列に設定されるというバグがあります。このステMySQL 5.6.7まで待。

MySQL 5.6.7:

密码カラムが空の文字列に設定されないように,改变用户が固定されました。

MySQL 5.6.8:

改变用户は,準備されたステトメントとして使用できます。

mysqladmin密码は,期限切れのネイティブまたは古いネイティブのパスワードを持つアカウントのパスワードを設定できるようになりました。

设置密码に加えて、クラ以及アントがステトメントを実行することが許可されるように,サンドボックスモドが変更されました。の禁止により,old_passwordsを設定する必要があるクラ邮箱アントがパスワ邮箱ドをリセットできませんでした。また,これにより,接続時にを広範囲に使用してセッション環境を初期化する一部のコネクタも使用できませんでした。

MySQL 5.6.9:

ステトメントで指定されたアカウントとクラアントが認証したアカウントが一致する場合にのみ,设置密码が許可されるように,サンドボックスモドが変更されました。

MySQL 5.6.10:

期限切れパスワードを持つアカウントのクライアント接続をサーバーが処理する方法をより適切に制御することが許可され,クライアントが期限切れパスワードを処理できるどうかを示すことが許可されるように,サンドボックスモードが変更されました。

  • サバが期限切れパスワドを持disconnect_on_expired_passwordシステム変数が追加されました。

  • C APIクラesxiアントラesxiブラリに,mysql_options ()用のMYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDSmysql_real_connect ()用のCLIENT_CAN_HANDLE_EXPIRED_PASSWORDSの2のフラグが追加されました。各フラグを使用すると,クライアントプログラムが期限切れパスワードを持つアカウントに対してサンドボックスモードを処理できるかどうかを示すことができます。

    MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDSmysqltestでは無条件に,mysqlでは邮箱ンタラクティブモ邮箱ドで,mysqladminでは最初のコマンドが密码の場合に有効になりました。

  • ER_MUST_CHANGE_PASSWORD_LOGINエラが追加されました。クラ,サ。

MySQLサーバーとC APIクライアントライブラリにおけるサンドボックスモードへのこれらの変更に合わせて,コネクタを変更に適合させるための修正の取り組みも始まっています。