Sử dụng người dùng hệ điều hành postgres
để tạo cơ sở dữ liệu của bạn - miễn là bạn chưa thiết lập cơ sở dữ liệu vai trò với các đặc quyền cần thiết tương ứng với người dùng hệ điều hành cùng tên của bạn (h9uest
trong trường hợp của bạn):
sudo -u postgres -i
Theo đề xuất tại đây hoặc tại đây.
Sau đó, hãy thử lại. Nhập exit
khi được thực hiện với điều hành với tư cách người dùng hệ thống postgres
.
Hoặc thực hiện một lệnh duy nhất createuser
dưới dạng postgres
với sudo
, giống như được minh họa bởi drees trong một câu trả lời khác.
Vấn đề là sử dụng người dùng hệ điều hành phù hợp với vai trò cơ sở dữ liệu cùng tên để được cấp quyền truy cập qua ident
xác thực . postgres
là người dùng hệ điều hành mặc định đã khởi tạo cụm cơ sở dữ liệu. Hướng dẫn sử dụng:
Để khởi động hệ thống cơ sở dữ liệu, một hệ thống mới khởi tạo luôn chứa một vai trò được xác định trước. Vai trò này luôn là “superuser” và theo mặc định (trừ khi được thay đổi khi chạy
initdb
) it sẽ có cùng tên với người dùng hệ điều hành đã khởi tạo cụm cơ sở dữ liệu. Theo thông lệ, vai trò này sẽ được đặt tên làpostgres
.Để tạo nhiều vai trò hơn, trước tiên bạn phải kết nối với vai trò chính này.
Tôi đã nghe nói về các thiết lập kỳ lạ với tên người dùng không chuẩn hoặc trong đó người dùng hệ điều hành không tồn tại. Bạn cần phải điều chỉnh chiến lược của mình ở đó.
Đọc về vai trò cơ sở dữ liệu và xác thực ứng dụng khách trong sách hướng dẫn.