MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

13.7.1.10 SET PASSWORD ステートメント

SET PASSWORD [FOR user] auth_option
    [REPLACE 'current_auth_string']
    [RETAIN CURRENT PASSWORD]

auth_option: {
    = 'auth_string'
  | TO RANDOM
}

SET PASSWORD ステートメントは、MySQL ユーザーアカウントにパスワードを割り当てます。 パスワードは、ステートメントで明示的に指定するか、MySQL によってランダムに生成されます。 このステートメントには、置換するアカウントの現在のパスワードを指定する password-verification 句と、アカウントにセカンダリパスワードがあるかどうかを管理する句を含めることもできます。'auth_string'および'current_auth_string'はそれぞれクリアテキスト (暗号化されていない) パスワードを表します。

注記

SET PASSWORD を使用してパスワードを割り当てるのではなく、ALTER USER はアカウントの変更 (パスワードの割当てを含む) に優先ステートメントです。 例:

ALTER USER user IDENTIFIED BY 'auth_string';
注記

ランダムパスワード生成、パスワード検証およびセカンダリパスワードの句は、資格証明を MySQL に内部的に格納する認証プラグインを使用するアカウントにのみ適用されます。 MySQL の外部にある資格証明システムに対して認証を実行するプラグインを使用するアカウントの場合、パスワード管理もそのシステムに対して外部で処理する必要があります。 内部資格証明記憶域の詳細は、セクション6.2.15「パスワード管理」 を参照してください。

REPLACE 'current_auth_string'句はパスワード検証を実行し、MySQL 8.0.13 の時点で使用できます。 指定された場合:

現在のパスワードを指定したパスワード検証の詳細は、セクション6.2.15「パスワード管理」 を参照してください。

RETAIN CURRENT PASSWORD 句はデュアルパスワード機能を実装し、MySQL 8.0.14 の時点で使用できます。 指定された場合:

デュアルパスワードの使用の詳細は、セクション6.2.15「パスワード管理」 を参照してください。

SET PASSWORD では、次の auth_option 構文が許可されます:

重要

状況によっては、SET PASSWORD がサーバーログ、またはクライアント側にある ~/.mysql_history などの履歴ファイル内に記録されることがあります。つまり、平文のパスワードが、その情報に対する読み取りアクセス権を持つ任意のユーザーによって読み取られる可能性があります。 これがサーバーログで発生する条件およびこれを制御する方法については、セクション6.1.2.3「パスワードおよびロギング」を参照してください。 クライアント側のロギングに関する同様の情報については、セクション4.5.1.3「mysql クライアントロギング」を参照してください。

SET PASSWORD は、ユーザーアカウントを明示的に指定する FOR 句の有無にかかわらず使用できます:

FOR user 句が指定されている場合、このアカウント名には、セクション6.2.4「アカウント名の指定」で説明されている形式が使用されます。 例:

SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';

アカウント名のホスト名部分は、省略すると'%'にデフォルト設定されます。

SET PASSWORD は、この文字列をクリアテキスト文字列として解釈し、アカウントに関連付けられた認証プラグインに渡して、プラグインによって返された結果を mysql.user システムテーブルのアカウント行に格納します。 (プラグインには、期待される暗号化形式に値をハッシュする機会が与えられます。 プラグインは、指定された値を使用できます。この場合、ハッシュは発生しません。)

(FOR 句を使用して) 名前付きアカウントのパスワードを設定するには、mysql システムスキーマに対する UPDATE 権限が必要です。 (FOR 句のない匿名以外のアカウントの場合) 自分のパスワードを設定する場合、特別な権限は必要ありません。

セカンダリパスワードを変更するステートメントには、次の権限が必要です:

read_only システム変数が有効になっている場合、SET PASSWORD には、他の必要な権限に加えて、CONNECTION_ADMIN 権限 (または非推奨の SUPER 権限) が必要です。

パスワードと認証プラグインの設定の詳細は、セクション6.2.14「アカウントパスワードの割り当て」およびセクション6.2.17「プラガブル認証」を参照してください。