MySQL 5.1 リファレンスマニュアル :: 12 SQL ステートメント構文 :: 12.5 データベース管理ステートメント :: 12.5.1 アカウント管理ステートメント :: 12.5.1.6 SET PASSWORD 構文
« 12.5.1.5 REVOKE 構文

12.5.2 テーブル メンテナンス ステートメント »
Section Navigation      [Toggle]
  • 12.5.1 アカウント管理ステートメント
  • 12.5.1.1 CREATE USER 構文
  • 12.5.1.2 DROP USER 構文
  • 12.5.1.3 GRANT 構文
  • 12.5.1.4 RENAME USER 構文
  • 12.5.1.5 REVOKE 構文
  • 12.5.1.6 SET PASSWORD 構文

12.5.1.6. SET PASSWORD 構文

SET PASSWORD [FOR user] = PASSWORD('some password')

SET PASSWORD ステートメントは既存 MySQL ユーザ アカウントにパスワードを割り当てます。

FOR 条項無しで、このステートメントは現在のユーザにパスワードを設定します。非匿名アカウントを利用しているサーバに接続したクライアントは、そのアカウントのパスワードを変更する事ができます。

このステートメントは、FOR 条項を利用して、現在のサーバ ホスト上の特定のアカウントにパスワードを設定します。mysql データベースの UPDATE 権限を持つクライアントだけがこれを実行できます。user 値は、user_name と host_name が、mysql.user テーブル エントリの User と Host カラム内でリストされているのと全く同じである user_name@host_name フォーマット内で与えられる必要があります。 例えば、もし 'bob' と '%.loc.gov' の User と Host カラム値と共にエントリを持っていたら、 ステートメントを次のように書くでしょう。

SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');

これは、次のステートメントと同等です。

UPDATE mysql.user SET Password=PASSWORD('newpass')
  WHERE User='bob' AND Host='%.loc.gov';
FLUSH PRIVILEGES;

注意:もし MySQL 4.1 または pre-4.1 クライアント プログラムを利用するそれ以降のサーバに接続していたら、項4.7.9. 「MySQL 4.1 のパスワードハッシュ」 を読むまでは、前出の SET PASSWORD や UPDATE ステートメントを利用しないでください。MySQL 4.1 で変更されたパスワード フォーマット、そして特定の状況下では、もしパスワードを変更するとその後サーバに接続する事ができなくなる、という事が起こり得ます。

SELECT CURRENT_USER() を実行する事によって、どのアカウントとしてサーバが認証したのかを見る事ができます。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates