
MySQL 5.7.4で導入された「パスワードの有効期限」設定にご注意を? 30
まだ採用ディストリが少ないからセーフかも? 部門より
昨年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日が経過するシステムが登場してくるところだ。なにか大きなトラブルにならなければ良いのだが……
Oracle 11g を思い出す (スコア:4, 参考になる)
# PASSWORD_LIFE_TIME で検索。
MySQL も Oracle に買収されたあと、同様の機能を入れたんでしょう。
Re: (スコア:0)
飼い殺し終息の既定路線ってことですね
Re: (スコア:0)
mariadbがあるさね。
コミュニティベースでどこまでエンタープライズに耐えるかというのはさておきですが。
5.7はまだ正式リリースされてないんじゃ? (スコア:2, 参考になる)
今5.7.7がrcで、5.7.4はまだベータ段階だったはずなんですが、実戦投入しちゃってる人、います?
Re:5.7はまだ正式リリースされてないんじゃ? (スコア:1)
実戦はいないだろうけど、1年以上経た今でもこのパラメーターが存在するってことは、これをGAリリースにマジで盛り込む気なんだろうなぁ。
まぁあってもいいけど、デフォルトで 360(日)っていうが凶悪だ。
今回話題になったことで日本人でリクエスト投げてるようだけどどうなるのか気になるところ。
http://bugs.mysql.com/bug.php?id=77277 [mysql.com]
またはerror_logに、とも書いてあるけど、error_logなんて全然チェックしないから気づかないよ・・・
問題が起きない限り見ないからなぁ。大きな企業でDB担当者とか専門の人でもない限り、アプリ開発者とかが片手間でやってることが多いだろうし、logまできっちりチェックしてないのでは。
Re: (スコア:0)
ローカルな実務環境に使うてますね。。。
このトピ見て周りに確かめたけど誰も全く知らなかったので、職場の「ヒヤリハット事例集」に登録します。。。
今時のデータベースは (スコア:0)
ほとんど他のアプリのバックエンドとしてのみ動いてるんじゃないかな?
パスワード変更どころか(データベースの)ユーザ自体意識してないような
#「BIツールが無ければSQL叩けばいいじゃない?」 -- 某シスアド
Re:今時のデータベースは (スコア:3, 興味深い)
だからこそ問題になるんですよ。突然システムがエラー吐いて何が起きてるのかわからん、みたいな。
oracleで遭遇したことありますね…。
アレも1年だったかな。処理が止まったと大騒ぎになって、調べてみたら常駐処理プロセスが使用するDBのアカウント有効期限切れ。
手順書では、無期限に変更するよう指示してあったはずなんですが、読み飛ばしたのか、古いoracle用の手順書でやっちゃったのか。
oracleの場合は11での変更だったかな?
けっこうハマった人多いんじゃなかと想像しますw
Re: (スコア:0)
すまない。結論書き忘れた。
「だから、ユーザにパスワードを定期的に変更させるとか無茶だろう」
と書くつもりだった。
Re: (スコア:0)
MySQLみたいにDBとアカウントが一緒になってるのは時代遅れだろうね。
そういうのも嫌でうちはもう4,5年前に脱SQLを始めた。
Re: (スコア:0)
いまは何をおつかいで?
Re:今時のデータベースは (スコア:1)
もしや桐
Re: (スコア:0)
DBは通常ファイルシステムのようなメタ情報を持っていないから日付を管理したければ自分で日時用のカラムを追加する必要があるね。
Re: (スコア:0)
>知らない奴なのか、文章下手なのかわからないのですが、
それは貴方の「相手が何を言いたいのかを理解する能力」が劣っているだけでしょう
Re: (スコア:0)
同感。困ったもんだ。
Re: (スコア:0)
相手が何を言ってるかわからないときはまず自分の無知を疑うべきなのにね。
そして見事恥を晒してる。
何を言ってるかわからないのは#2828062だけですよ。
他の人はみんなわかってる。
Re: (スコア:0)
> 何を言ってるかわからないのは#2828062だけですよ。
> 他の人はみんなわかってる。
それはどうかな?
元記事を読んだから理解するだけで「パスワード」がなんのパスワードなのかわかりにくい。
「ユーザーのパスワード」と言ってもどこまでを含むのかもわからないし、
そもそもMySQLってパスワードを変更しないって考えの方が強くて。
#システムのパスワードを平文で置かない技術がほしい。なくはないけど。
Re: (スコア:0)
「MySQLのパスワード」にDB接続以外のパスワードがあるとは初耳でした。
Re: (スコア:0)
> 「MySQLのパスワード」にDB接続以外のパスワードがあるとは初耳でした。
構築しているシステムのIDとパスワードをMySQLで管理することありますよ。
知らない人にはわからないことかと思いますが、DBでIDとPWを管理するんですよ。
# それやっていないひとはなに?テキストファイルで?
# 他システムのトークンでってのはあるか。
Re: (スコア:0)
> 「MySQLのパスワード」にDB接続以外のパスワードがあるとは初耳でした。
タレコミにDB接続のパスワードとも書いてないね。
それにrootをDB接続に利用できないように制限設定することあるね。
#rootはユーザーじゃないって言われればそれまで。
Re:知らない奴? (スコア:1)
そろそろ話が「裸の王様」っぽくなってきた(笑)
Re: (スコア:0)
それどころか、タレコミよりも元コメントのほうが文章下手な感じすら…
Re: (スコア:0)
>それは貴方の「相手が何を言いたいのかを
>理解する能力」が劣っているだけでしょう
この主語がない文章は下手なのはまちがいない。
Re: (スコア:0)
>この主語がない文章は下手なのはまちがいない。
このコメントを書いたACには読解力が足りないのはまちがいない。
Re: (スコア:0)
主語は「それ(何を言いたいのか分からない)は」でしょ。
Re: (スコア:0)
そもそも日本語に主語はいらない。
http://ja.wikipedia.org/wiki/%E4%B8%BB%E8%AA%9E#.E6.97.A5.E6.9C.AC.E8.AA.9E [wikipedia.org]
Re: (スコア:0)
パスワードを自動で管理できる仕組みがあったら
いいですね。
ビジネスバリデートをDBがやるべきではないけど。