PostgreSQL: บทบาทไม่ได้รับอนุญาตให้เข้าสู่ระบบ


143

ฉันมีปัญหาในการเชื่อมต่อกับฐานข้อมูล postgres ของตัวเองบนเซิร์ฟเวอร์ภายใน ฉัน googled ปัญหาที่คล้ายกันและหาคู่มือนี้ https://help.ubuntu.com/stable/serverguide/postgresql.html

ดังนั้น:

pg_hba.conf พูดว่า:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 trust

จากนั้นฉันสร้างผู้ใช้และกำหนดรหัสผ่านสำหรับมัน:

postgres=# create role asunotest;
CREATE ROLE
postgres=# alter role asunotest with encrypted password '1234';
ALTER ROLE

แต่มันไม่ให้ฉันเข้า:

-bash-4.2$ psql -h 127.0.0.1 -U asunotest
Password for user asunotest: 1234
psql: FATAL:  role "asunotest" is not permitted to log in

อะไรคือปัญหา?

คำตอบ:


308

บทบาทที่คุณสร้างขึ้นไม่ได้รับอนุญาตให้เข้าสู่ระบบคุณต้องให้สิทธิ์บทบาทในการเข้าสู่ระบบ

วิธีหนึ่งในการดำเนินการนี้คือเข้าสู่ระบบในฐานะpostgresผู้ใช้และอัปเดตบทบาท:

psql -U postgres

เมื่อคุณเข้าสู่ระบบแล้วให้พิมพ์:

ALTER ROLE "asunotest" WITH LOGIN;

นี่คือเอกสาร http://www.postgresql.org/docs/9.0/static/sql-alterrole.html


2
อย่างที่ทำไม่ได้psqlฉันจะแก้ไขบทบาทได้อย่างไร
Romulus Urakagi Ts'ai

3
@ RomulusUrakagiTs'ai คุณควรเข้าเป็นผู้ใช้ postgres (sudo -u postgres psql postgres)
Mi Ka


1

ใช้ pgadmin4 :

  1. เลือกบทบาทในเมนูด้านข้าง
  2. เลือกคุณสมบัติในแดชบอร์ด
  3. คลิกแก้ไขและเลือกสิทธิ์

ตอนนี้คุณสามารถเปิดหรือปิดการเข้าสู่ระบบบทบาทและตัวเลือกอื่น ๆ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.