SET PASSWORD [FORuser
] = 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()
を実行する事によって、どのアカウントとしてサーバが認証したのかを見る事ができます。