ฉันต้องการเปลี่ยนเจ้าของฐานข้อมูล PostgreSql
จะเปลี่ยนเจ้าของฐานข้อมูล PostgreSql ใน phppgadmin ได้อย่างไร?
ฉันต้องการเปลี่ยนเจ้าของฐานข้อมูล PostgreSql
จะเปลี่ยนเจ้าของฐานข้อมูล PostgreSql ใน phppgadmin ได้อย่างไร?
คำตอบ:
ALTER DATABASE name OWNER TO new_owner;
ดูรายการคู่มือของ Postgresqlสำหรับรายละเอียดเพิ่มเติม
ERROR: must be member of role ...
= ไม่ทำงานกับ RDS
คำตอบของ Frank Heikens จะอัปเดตความเป็นเจ้าของฐานข้อมูลเท่านั้น บ่อยครั้งที่คุณต้องการอัปเดตการเป็นเจ้าของวัตถุที่มีอยู่ (รวมถึงตาราง) เริ่มต้นด้วย Postgres 8.2, REASSIGN OWNEDจะพร้อมใช้งานเพื่อให้งานนี้ง่ายขึ้น
แก้ไขที่สำคัญ!
อย่าใช้REASSIGN OWNED
เมื่อบทบาทดั้งเดิมเป็นpostgres
เช่นนี้อาจสร้างความเสียหายให้อินสแตนซ์ฐานข้อมูลทั้งหมดของคุณ คำสั่งจะอัปเดตวัตถุทั้งหมดด้วยเจ้าของใหม่รวมถึงทรัพยากรของระบบ (postgres0, postgres1 ฯลฯ )
ก่อนอื่นให้เชื่อมต่อกับฐานข้อมูลผู้ดูแลระบบและอัปเดตความเป็นเจ้าของฐานข้อมูล:
psql
postgres=# REASSIGN OWNED BY old_name TO new_name;
นี่เป็นALTER DATABASE
คำสั่งเทียบเท่าทั่วโลกที่ให้ไว้ในคำตอบของ Frank แต่แทนที่จะอัพเดต DB เฉพาะมันเปลี่ยนการเป็นเจ้าของ DBs ทั้งหมดที่เป็นของ 'old_name'
ขั้นตอนต่อไปคือการอัพเดทความเป็นเจ้าของตารางสำหรับแต่ละฐานข้อมูล:
psql old_name_db
old_name_db=# REASSIGN OWNED BY old_name TO new_name;
ต้องดำเนินการกับฐานข้อมูลแต่ละรายการที่เป็นเจ้าของโดย 'old_name' คำสั่งจะอัปเดตความเป็นเจ้าของของตารางทั้งหมดในฐานข้อมูล
postgres
ตัวของตัวเอง ... เรียนรู้วิธีที่ยากลำบาก
REASSIGN OWNED
(ปกติเพราะเจ้าของของคุณpostgres
) ดูตัวอย่างในstackoverflow.com/a/2686185/1839209