Nếu bạn có pg_hba.conf
đặt thành yêu cầu md5
xác thực và người dùng không có mật khẩu thì không thể xác thực được.
ALTER USER the_user_name PASSWORD 'give_it_a_password';
Ngoài ra, hãy sử dụng ident
hoặc (chỉ dành cho máy chủ cục bộ, không an toàn) trust
xác thực cho tổ hợp người dùng / db đó trong pg_hba.conf
nếu bạn thực sự phải không có mật khẩu. Đây thường là một ý tưởng tồi, tốt hơn hết là bạn chỉ cần đặt một mật khẩu.
Demo:
$ psql -q -U postgres postgres
postgres=# CREATE USER nopw;
CREATE ROLE
$ psql -h localhost -U nopw postgres
Password for user nopw: [pressed enter]
psql: fe_sendauth: no password supplied
$ psql -q -U postgres postgres
postgres=# ALTER USER nopw PASSWORD 'test';
postgres=# \q
$ psql -q -h localhost -U nopw postgres
Password for user nopw: [entered 'test' then pressed enter]
postgres=>