「MySQLのパスワード」の版間の差分
提供: セキュリティ
(ページの作成:「<!-- vim: filetype=mediawiki --> __TOC__ == 概要 == MySQL のユーザアカウントは、 mysql データベースの user テーブルに格納されてい...」) |
細 |
||
行71: | 行71: | ||
+-----------------+ | +-----------------+ | ||
1 row in set (0.01 sec) | 1 row in set (0.01 sec) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == MySQL のパスワード変更 == | ||
+ | |||
+ | <syntaxhighlight lang="mysql"> | ||
+ | mysql> UPDATE user SET Password=PASSWORD('mynewpassword') | ||
+ | -> WHERE User='root'; | ||
+ | mysql> FLUSH PRIVILEGES; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2013年4月21日 (日) 22:20時点における版
概要
MySQL のユーザアカウントは、 mysql データベースの user テーブルに格納されています。 user テーブルの Password カラムには、平文テキストではなく、パスワードのハッシュ値が入ります。
ハッシュ値の計算は、MySQLの PASSWORD() 関数で行われます。 PASSWORD()は、同じ値に対して、常に同じハッシュ値を出力します。
MySQL の 4.1 でパスワードハッシュメカニズムが変更されました。
4.1から | 4.1より前 | |
---|---|---|
パスワード長さ | 41 | 16 |
特徴 | 先頭が * はじまる | 先頭が * ではない |
4.1 より前のパスワード関数
MySQL 4.1 から 4.1 より前のパスワードハッシュを求めるには、 OLD_PASSWORD() 関数を利用します。
使い方
mysql> SELECT PASSWORD('test'); +-------------------------------------------+ | PASSWORD('test') | +-------------------------------------------+ | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 | +-------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT OLD_PASSWORD('test'); +----------------------+ | OLD_PASSWORD('test') | +----------------------+ | 378b243e220ca493 | +----------------------+ 1 row in set (0.00 sec)
古いパスワードを使うオプション
my.cnf に old-passowrds と書きます。
確認方法は、 @@old_passwords を select します。
mysql> SELECT @@old_passwords; +-----------------+ | @@old_passwords | +-----------------+ | 0 | +-----------------+ 1 row in set (0.01 sec)
MySQL のパスワード変更
mysql> UPDATE user SET Password=PASSWORD('mynewpassword') -> WHERE User='root'; mysql> FLUSH PRIVILEGES;