ฉันเพิ่งติดตั้ง postgres 8.4 บน Ubuntu 9.10 และมันไม่เคยขอให้ฉันสร้าง superuser มี superuser เริ่มต้นและรหัสผ่านหรือไม่ ถ้าไม่ฉันจะสร้างใหม่ได้อย่างไร
ฉันเพิ่งติดตั้ง postgres 8.4 บน Ubuntu 9.10 และมันไม่เคยขอให้ฉันสร้าง superuser มี superuser เริ่มต้นและรหัสผ่านหรือไม่ ถ้าไม่ฉันจะสร้างใหม่ได้อย่างไร
คำตอบ:
ข้อควรระวังคำตอบเกี่ยวกับการเปลี่ยนรหัสผ่าน UNIX สำหรับ "postgres" ถึง "$ sudo passwd postgres" ไม่เป็นที่ต้องการและอาจเป็นอันตรายได้ !
นี่คือเหตุผล: โดยค่าเริ่มต้นบัญชี UNIX "postgres" ถูกล็อคซึ่งหมายความว่าไม่สามารถเข้าสู่ระบบโดยใช้รหัสผ่าน หากคุณใช้ "sudo passwd postgres" บัญชีจะถูกปลดล็อคทันที ยิ่งไปกว่านั้นถ้าคุณตั้งรหัสผ่านเป็นสิ่งที่อ่อนแอเช่น "postgres" คุณจะได้รับอันตรายด้านความปลอดภัยที่ดี ตัวอย่างเช่นมีจำนวนบอทที่พยายามใช้ชื่อผู้ใช้ / คำสั่งผสม "postgres / postgres" เพื่อเข้าสู่ระบบ UNIX ของคุณ
สิ่งที่คุณควรทำคือทำตามคำตอบของChris James :
sudo -u postgres psql postgres
# \password postgres
Enter new password:
อธิบายได้นิดหน่อย โดยปกติจะมีวิธีเริ่มต้นสองวิธีในการลงชื่อเข้าใช้เซิร์ฟเวอร์ PostgreSQL:
โดยการเรียกใช้คำสั่ง "psql" เป็นผู้ใช้ระบบปฏิบัติการยูนิกซ์ (ที่เรียกว่า IDENT การตรวจสอบ / PEER) sudo -u postgres psql
เช่น: โปรดทราบว่าsudo -u
จะไม่ปลดล็อกผู้ใช้ UNIX
โดยการเชื่อมต่อ TCP / IP โดยใช้ชื่อผู้ใช้ / รหัสผ่านที่ได้รับการจัดการของ PostgreSQL (เรียกว่าการพิสูจน์ตัวตน TCP) (เช่นไม่ใช่รหัสผ่าน UNIX)
ดังนั้นคุณไม่ต้องการตั้งรหัสผ่านสำหรับบัญชี UNIX "postgres" ปล่อยให้ล็อคเป็นค่าเริ่มต้น
สิ่งที่แน่นอนสามารถเปลี่ยนแปลงได้ถ้าคุณกำหนดค่ามันแตกต่างจากการตั้งค่าเริ่มต้น ตัวอย่างเช่นหนึ่งสามารถซิงค์รหัสผ่าน PostgreSQL กับรหัสผ่าน UNIX และอนุญาตให้เข้าสู่ระบบในท้องถิ่นเท่านั้น นั่นจะเกินขอบเขตของคำถามนี้
/etc/shadow
เป็นที่เก็บรหัสผ่าน @lzap
ป้อนในบรรทัดคำสั่ง:
$ sudo -u postgres psql postgres
postgres=# \password postgres
คุณจะเห็น:
Enter new password:
Enter it again:
คุณจัดการ postgres ผ่านผู้ใช้postgres
ดังนี้:
# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
su
ยังผู้ใช้ postgres โดยไม่ต้องป้อนรหัสผ่าน ในระบบส่วนใหญ่บัญชี Unix ของ Postgres จะถูกล็อค (ไม่มีรหัสผ่านจะใช้งานได้) ซึ่งหมายความว่าจะสามารถรูทได้เฉพาะsu
กับบัญชีนั้น
sudo
su
sudo su - postgres
: \
sudo -u postgres
คุณยังสามารถเรียกใช้
ใน Windows ให้ทำดังต่อไปนี้ (สำคัญ: ใช้บัญชีผู้ดูแลระบบ Windows ):
<PostgreSQL PATH>\data\pg_hba.conf
หลังจากการติดตั้งเปิด
แก้ไขสองบรรทัดนี้และเปลี่ยน "md5" เป็น "trust":
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
เริ่มบริการ PostgreSQL ใหม่ (อาจไม่จำเป็น)
(ไม่บังคับ) เปิดพรอมต์คำสั่งและเปลี่ยนรหัสเพจเป็น 1252:
cmd.exe /c chcp 1252
เข้าสู่ระบบ PostgreSQL จะต้องใช้รหัสผ่านที่ไม่ใช่รหัสผ่าน (สังเกตพารามิเตอร์ตัวพิมพ์ใหญ่ -U):
psql -U postgres
(ไม่บังคับแนะนำให้ใช้เพื่อเหตุผลด้านความปลอดภัย) เปลี่ยนpostgres
รหัสผ่านของผู้ใช้:
\password postgres
และการเปลี่ยนแปลง "ไว้วางใจ" กลับไปที่ "md5" pg_hba.conf
ใน
หากคุณพยายามเข้าถึงเชลล์ PostgreSQL คุณสามารถพิมพ์:
psql -U postgres my_database
my_database
ชื่อฐานข้อมูลของคุณอยู่ที่ไหน