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


32

ฉันสร้างพอร์ทัล superuser ด้วยคำสั่งต่อไปนี้

create role portal with superuser password 'portal'

เมื่อฉันพยายามที่จะเข้าสู่ postgres กับผู้ใช้พอร์ทัลฉันได้รับข้อผิดพลาดต่อไปนี้ในทางรถไฟ

FATAL:  role "portal" is not permitted to log in

ฉันไม่สามารถติดตามสิ่งที่เกิดขึ้นได้

แน่นอนฉันสามารถเปลี่ยนผู้ใช้ด้วยคำสั่งเข้าสู่ระบบเพื่อให้ผู้ใช้พอร์ทัลเข้าสู่ระบบ ฉันต้องการที่จะเข้าใจว่าทำไมผู้ใช้ขั้นสูงไม่สามารถเข้าสู่ระบบได้


2
เพราะ a roleไม่สามารถลงชื่อเข้าใช้ได้คุณควรใช้create userถ้าคุณต้องการบางสิ่งที่สามารถเข้าสู่ระบบได้
a_horse_with_no_name

1
@a_horse_with_no_name เพื่อความแม่นยำไม่มีความแตกต่างระหว่างบทบาทกับผู้ใช้ แต่มีอยู่ระหว่างCREATE ROLEและCREATE USERให้ดูคำตอบของ Craig
dezso

คำตอบ:


57

คุณไม่ได้ระบุสิ่งที่LOGINถูกต้อง:

ALTER ROLE portal WITH LOGIN;

ถ้าคุณใช้CREATE USERแทนที่เหมาะสมจะได้รับโดยอัตโนมัติ มิฉะนั้นคุณจะต้องระบุไว้ในส่วนคำสั่งCREATE ROLELOGINWITHCREATE

superusers ไม่เนื้อแท้มีLOGINขวา; การตรวจสอบการอนุญาตยังคงดำเนินการสำหรับ superuser สำหรับสิทธิ์นี้ เหตุผลสำหรับสิ่งนี้คือเพื่อให้คุณสามารถมีบทบาท superuser ที่คุณสามารถทำได้SET ROLEแต่ไม่สามารถเชื่อมต่อโดยตรง


4
CREATE ROLE 'portal' WITH LOGIN SUPERUSER PASSWORD 'portal';

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