新しいパスワードを設定する(SET PASSWORD 文、ALTER USER文)
MySQL で作成済みユーザーに新しいパスワードを設定するには SET PASSWORD 文または ALTER USER 文を使用します。ここでは MySQL で新しいパスワードを設定する方法について解説します。
(Last modified: )
SET PASSWORD文を使ったパスワードの設定
最初に SET PASSWORD 文を使ってユーザーに対して新しいパスワードを設定する方法です。次の書式を使います。
SET PASSWORD FOR user = 'auth_string'
ユーザー( user )に対して新しいパスワード( 'auth_string' )を設定します。
現在接続しているユーザーに新しいパスワードを設定する場合は次の書式も利用できます。
SET PASSWORD = 'auth_string'
現在接続しているユーザーに対して新しいパスワード( 'auth_string' )を設定します。
-- --
それでは実際に試してみます。 honda@localhost ユーザーのパスワードを 'honda2' に変更してみます。
set password for honda@localhost = 'honda2';
パスワードの変更が完了しました。
ALTER USER文を使ったパスワードの変更
次に ALTER USER 文を使ってユーザーに対して新しいパスワードを設定する方法です。次の書式を使います。
ALTER USER user IDENTIFIED BY 'auth_string'
ユーザー( user )に対して新しいパスワード( 'auth_string' )を設定します。
-- --
それでは実際に試してみます。 honda@localhost ユーザーのパスワードを 'honda3' に変更してみます。
alter user honda@localhost identified by 'honda3';
パスワードの変更が完了しました。
新しいパスワードを設定する時に現在のパスワードの入力を必要とする
MySQL では新しいパスワードを設定するときに、現在のパスワードを入力しないと変更できないようにすることができます。(ただしこの設定を行っても管理者ユーザーは現在のパスワードを入力しなくてもパスワードを変更できます)。
新しく作成するユーザーに対してこのルールを適用するには、次の書式を使用します。
CREATE USER user IDENTIFIED BY 'auth_string' PASSWORD REQUIRE CURRENT
作成済みのユーザーに対してこのルールを適用するには、次の書式を使用します。
ALTER USER user PASSWORD REQUIRE CURRENT
新しいパスワードを設定するときに現在のパスワードを入力する必要があるユーザーに対して、パスワードの変更を行う場合は次の書式を使用してください。
SET PASSWORD FOR user = 'auth_string' REPLACE 'current_auth_string'
'auth_string' に新しいパスワード、 'current_auth_string' に現在のパスワードを入力してください。
SET PASSWORD ではなく ALTER USER を使ってパスワードを変更する場合は、次の書式を使用してください。
ALTER USER user IDENTIFIED BY 'auth_string' REPLACE 'current_auth_string'
'auth_string' に新しいパスワード、 'current_auth_string' に現在のパスワードを入力してください。
-- --
それでは実際に試してみます。 honda@localhost ユーザーについて、新しいパスワードを設定する場合は現在のパスワードの入力が必要なように変更します。次のように実行してください。
alter user honda@localhost password require current;
honda@localhost ユーザーは新しいパスワードを設定するときに、現在のパスワードの入力が必要になりました。
それではいったん MySQL の接続を切り、 honda@localhost で MySQL に接続します。
まず現在のパスワードを入力せずにパスワードの変更を行ってみます。次のように実行してください。
set password for honda@localhost = 'honda4';
Current password needs to be specified in the REPLACE clause in order to change it. というエラーが表示されてパスワードを変更することができませんでした。
今度は現在のパスワードを入力してパスワードの変更を行ってみます。次のように実行してください。
set password for honda@localhost = 'honda4' replace 'honda3';
パスワードの変更をすることができました。
-- --
MySQL で作成済みのユーザーに対して新しいパスワードを設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。