59

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

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

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

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

ご協力ありがとうございました。

4

4 に答える 4

8

パスワードのデフォルトの md5 暗号化をオーバーライドする方法はわかりませんが、既に md5 で暗号化されたパスワードを持つ ROLE (別名「ユーザー」) がある場合は、それを指定できるようです。pg_dumpall -g を使用してこれを確認します (クラスターからのグローバルを表示するため)。

psql postgres
create role foo with encrypted password foobar;
\q

-- View the role from pg_dumpall -g
pg_dumpall -g | grep foo
CREATE ROLE foo;
ALTER ROLE foo WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN NOREPLICATION PASSWORD 'md5c98cbfeb6a347a47eb8e96cfb4c4b890';

Or get it from:
select * from pg_catalog.pg_shadow;

-- create the role again with the already-encrypted password
psql postgres
drop role foo;
CREATE ROLE foo;
ALTER ROLE foo WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN NOREPLICATION PASSWORD 'md5c98cbfeb6a347a47eb8e96cfb4c4b890';
\q

-- view the ROLE with the same password
pg_dumpall -g | grep foo
CREATE ROLE foo;
ALTER ROLE foo WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN NOREPLICATION PASSWORD 'md5c98cbfeb6a347a47eb8e96cfb4c4b890';

CREATE ROLEのドキュメント

于 2013-07-02T15:56:19.230 に答える