新しいパスワードを設定する(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';

SET PASSWORD文を使ったパスワードの設定(1)

パスワードの変更が完了しました。

ALTER USER文を使ったパスワードの変更

次に ALTER USER 文を使ってユーザーに対して新しいパスワードを設定する方法です。次の書式を使います。

ALTER USER user IDENTIFIED BY 'auth_string'

ユーザー( user )に対して新しいパスワード( 'auth_string' )を設定します。

-- --

それでは実際に試してみます。 honda@localhost ユーザーのパスワードを 'honda3' に変更してみます。

alter user honda@localhost identified by 'honda3';

SET PASSWORD文を使ったパスワードの設定(2)

パスワードの変更が完了しました。

新しいパスワードを設定する時に現在のパスワードの入力を必要とする

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;

新しいパスワードを設定する時に現在のパスワードの入力を必要とする(1)

honda@localhost ユーザーは新しいパスワードを設定するときに、現在のパスワードの入力が必要になりました。

それではいったん MySQL の接続を切り、 honda@localhost で MySQL に接続します。

新しいパスワードを設定する時に現在のパスワードの入力を必要とする(2)

まず現在のパスワードを入力せずにパスワードの変更を行ってみます。次のように実行してください。

set password for honda@localhost = 'honda4';

新しいパスワードを設定する時に現在のパスワードの入力を必要とする(3)

Current password needs to be specified in the REPLACE clause in order to change it. というエラーが表示されてパスワードを変更することができませんでした。

今度は現在のパスワードを入力してパスワードの変更を行ってみます。次のように実行してください。

set password for honda@localhost = 'honda4' replace 'honda3';

新しいパスワードを設定する時に現在のパスワードの入力を必要とする(4)

パスワードの変更をすることができました。

-- --

MySQL で作成済みのユーザーに対して新しいパスワードを設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。