PostgreSQLで暗号化されたパスワードを持つユーザーを作成する 質問する

PostgreSQLで暗号化されたパスワードを持つユーザーを作成する 質問する

プレーンテキストのパスワードを提供せずに PostgreSQL でユーザーを作成することは可能ですか (理想的には、sha-256 で暗号化されたパスワードのみを提供するユーザーを作成できるようにしたいと思います)?

私がやりたいのは、次のようなユーザーを作成することです:

CREATE USER "martin" WITH PASSWORD '$6$kH3l2bj8iT$KKrTAKDF4OoE7w.oy(...)BPwcTBN/V42hqE.';

それを実行する方法はありますか?

助けてくれてありがとう。

ベストアンサー1

md5ドキュメントに記載されているように、すでにハッシュ化されたパスワードを提供することもできます(ロールの作成):

ENCRYPTED UNENCRYPTED これらのキーワードは、パスワードがシステム カタログに暗号化されて保存されるかどうかを制御します。(どちらも指定されていない場合、デフォルトの動作は構成パラメータ password_encryption によって決定されます。)提示されたパスワード文字列がすでにMD5暗号化形式である場合、そのまま暗号化されて保存されます。ENCRYPTED または UNENCRYPTED のどちらが指定されているかに関係なく (システムは指定された暗号化されたパスワード文字列を復号化できないため)、ダンプ/復元中に暗号化されたパスワードを再ロードできます。

ここで欠けている情報は、MD5 で暗号化された文字列は、ユーザー名と連結されたパスワードであり、md5先頭に追加される必要があるということです。

たとえば、u0パスワードを使用して作成する場合foobar、次のようにmd5('foobaru0')なりますac4bbe016b808c3c0b816981f240dcae

CREATE USER u0 PASSWORD 'md5ac4bbe016b808c3c0b816981f240dcae';

foobarすると、u0 はパスワードとして入力してログインできるようになります。

現時点では、PostgreSQL パスワードのSHA-256代わりにを使用する方法はないと思います。md5

おすすめ記事