สมมติว่าคุณเป็นผู้ดูแลระบบของเครื่อง, อูบุนตูอนุญาตให้คุณสิทธิที่จะsudoเพื่อเรียกใช้คำสั่งใด ๆ ที่เป็นผู้ใช้ใด ๆ
นอกจากนี้สมมติว่าคุณไม่ได้ จำกัด สิทธิ์ในpg_hba.conf
ไฟล์ (ใน/etc/postgresql/9.1/main
ไดเร็กทอรี) ควรมีบรรทัดนี้เป็นกฎข้อแรก:
local all postgres peer
(เกี่ยวกับตำแหน่งไฟล์: 9.1
เป็นเวอร์ชัน postgres หลักและmain
ชื่อ "คลัสเตอร์" ของคุณซึ่งจะแตกต่างกันหากใช้ postgres เวอร์ชันใหม่กว่าหรือชื่อที่ไม่ใช่ค่าเริ่มต้นใช้pg_lsclusters
คำสั่งเพื่อรับข้อมูลนี้สำหรับเวอร์ชัน / ระบบของคุณ)
อย่างไรก็ตามหากpg_hba.conf
ไฟล์ไม่มีบรรทัดนั้นให้แก้ไขไฟล์เพิ่มและโหลดบริการใหม่ด้วยsudo service postgresql reload
.
จากนั้นคุณควรจะสามารถเข้าสู่ระบบด้วยpsql
เป็น superuser postgres ด้วยคำสั่งเชลล์นี้:
sudo -u postgres psql
เมื่ออยู่ใน psql ให้ออกคำสั่ง SQL:
ALTER USER postgres PASSWORD 'newpassword';
ในคำสั่งนี้postgres
เป็นชื่อของ superuser หากผู้ใช้ที่ลืมรหัสผ่านritesh
คำสั่งจะเป็น:
ALTER USER ritesh PASSWORD 'newpassword';
อ้างอิง: เอกสารPostgreSQL 9.1.13 บทที่ 19. การรับรองความถูกต้องของไคลเอ็นต์
โปรดทราบว่าคุณต้องพิมพ์postgresด้วยS ตัวเดียวต่อท้าย
หากปล่อยให้รหัสผ่านเป็นข้อความที่ชัดเจนในประวัติของคำสั่งหรือบันทึกของเซิร์ฟเวอร์เป็นปัญหา psql จะจัดเตรียมเมตา - คำสั่งแบบโต้ตอบเพื่อหลีกเลี่ยงสิ่งนั้นเป็นทางเลือกอื่นแทนALTER USER ... PASSWORD
:
\password username
ระบบจะถามรหัสผ่านด้วยอินพุตแบบ double blind จากนั้นจึงแฮชตามการpassword_encryption
ตั้งค่าและออกALTER USER
คำสั่งไปยังเซิร์ฟเวอร์ด้วยรหัสผ่านที่แฮชแทนเวอร์ชันข้อความที่ชัดเจน