プレーンテキストのパスワードを提供せずに 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