SET PASSWORD
説明
SET PASSWORD 文は、ユーザーのログインパスワードを変更するために使用します。
構文
SET PASSWORD [FOR <user_identity>] =
[PASSWORD(<plain_password>)]|[<hashed_password>]
必須パラメータ
1. <plain_password>
平文のパスワードを指定します。パスワードが
123456の場合は、文字列123456をそのまま使用します。
2. <hashed_password>
暗号化されたパスワードを指定します。パスワードが 123456 の場合は、文字列
*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9をそのまま使用します。これは関数PASSWORD('123456')の戻り値です。
オプションパラメータ
1. <user_identity>
ここで指定する user_identity は、CREATE USER でユーザーを作成したときに指定した user_identity と完全に一致する必要があります。一致しない場合は、ユーザーが存在しないというエラーが報告されます。user_identity を指定しない場合、現在のユーザーは 'username'@'ip' として扱われますが、どの user_identity とも一致しない可能性があります。現在のユーザーは SHOW GRANTS で確認できます。
アクセス制御要件
この SQL コマンドを実行するユーザーには、少なくとも次の権限が必要です。
| 権限 | オブジェクト | 備考 |
|---|---|---|
| ADMIN_PRIV | USER または ROLE | ユーザーまたはロールに ADMIN_PRIV 権限がある場合は、すべてのユーザーのパスワードを変更できます。権限がない場合は、現在のユーザーのパスワードのみ変更できます。 |
使用上の注意
4.1.5 以降、特別な root アイデンティティは 'root'@'%' のみです。'root'@'localhost' のようなアイデンティティは通常のユーザーのままであり、ユーザー名が root であるというだけでは、実際の root アカウントを変更する権限は得られません。実際の root アカウントに対する保護は、root という名前のほかのユーザーには適用されません。
FOR user_identityフィールドを指定しない場合は、現在のユーザーのパスワードを変更します。
例
- 現在のユーザーのパスワードを変更する
SET PASSWORD = PASSWORD('123456')
SET PASSWORD = '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'
- 指定したユーザーのパスワードを変更する
SET PASSWORD FOR 'jack'@'192.%' = PASSWORD('123456')
SET PASSWORD FOR 'jack'@['domain'] = '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'