MySQL 5.7.4で導入された「パスワードの有効期限」設定にご注意を?

2015年6月10日 08:25

あるAnonymous Coward 曰く、 昨年3月31日にリリースされたMySQL 5.7.4で新たに導入された「default_password_lifetime」システム変数について、その挙動に注意が必要という話が話題になっているはてなブックマーク)。

 このシステム変数は、「パスワードの有効期限」を日単位で設定するもの。Changes in MySQL 5.7.4ドキュメントによると、パスワードを変更してからこの変数で指定された日数が経過すると、そのパスワードが失効するというものだ。デフォルト値は360、つまり約1年で、ドキュメントには「パスワードは年一回更新すべきである」と記されている。

 ユーザーのパスワードを変更した日付はmysql.userテーブルのpassword_last_changedカラムに記録されており、ログイン処理を行う際にこの値を参照する仕組みのようだ。また、password_lifetimeカラムでユーザー毎の有効期限を設定することも可能だ。より詳しい情報はドキュメントのPassword Expiration Policy項にまとめられているが、パスワードの有効期限が切れていた場合、ログインはできるもののパスワードを変更するまでそれ以外のデータベース操作が一切行えなくなるという。

 定期的にパスワードを変更することに意味があるのか、という議論はおいておいて、大きな問題点としては、この設定がデフォルトで有効になっているということだ。そのため、知らぬ間に突然アプリケーションが動かなくなる、といった現象が発生する可能性がある。さらに凶悪なことにログインはできるのにクエリは行えないという状況になるため、パスワードに有効期限が設定されているという知識がない場合、原因不明で特定のアカウントからのみクエリが行えない、という状況に見えてしまう。

 MySQL 5.7.4がリリースされてから1年と2か月ほどが経過し、そろそろアカウントを作成してから360日が経過するシステムが登場してくるところだ。なにか大きなトラブルにならなければ良いのだが……

 スラドのコメントを読む | デベロッパーセクション | ソフトウェア | データベース

 関連ストーリー: Debian 8.0 「Jessie」 リリース 2015年04月27日 Amazon、MySQL互換のデータベースをクラウドで提供するサービスを発表 2014年11月18日 ECサイトの本番環境のセキュリティ診断で全ユーザーのパスワードが一時初期化される 2014年05月27日 バグ報告に対するMySQL(Oracle)とMariaDBの対応の違い 2013年09月11日

関連記事

最新記事