วิธีที่ 1: ให้สิทธิ์ Superuser (จัดการได้ทั้งหมด เบ็ดเสร็จ)
sudo -u postgres psql
CREATE ROLE myuser WITH LOGIN SUPERUSER PASSWORD 'your_secure_password';
วิธีที่ 2: ให้สิทธิ์จัดการ Database แต่ไม่ใช่ Superuser (แนะนำด้านความปลอดภัย)
- สร้าง User ที่มีสิทธิ์สร้าง Database (CREATEDB) และสร้าง Role อื่นได้ (CREATEROLE):
CREATE USER myuser WITH CREATEDB CREATEROLE PASSWORD 'your_secure_password';
- หากต้องการให้ User นี้เข้าไปจัดการข้อมูลและ Table ภายใน Database ที่มีอยู่แล้ว ต้องให้สิทธิ์เพิ่มเติมในแต่ละ Database นั้นๆ:
-- สิทธิ์เชื่อมต่อ Database
GRANT CONNECT ON DATABASE target_db TO myuser;
-- เชื่อมต่อเข้าไปใน target_db แล้วรันสิทธิ์ใน schema
\c target_db
GRANT ALL ON SCHEMA public TO myuser;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO myuser;
- กรณีต้องการเปลี่ยนสิทธิ์ User เดิมที่มีอยู่แล้ว
- หากมี User เดิมอยู่แล้วและต้องการอัปเกรดให้เป็น Superuser ทันที:
ALTER USER myuser WITH SUPERUSER;
Related:
- https://juuier.blogspot.com/2026/10/shell-postgresql-dump-and-restore.html
- https://juuier.blogspot.com/2026/10/postgresql-ubuntu-2204.html
- https://juuier.blogspot.com/2026/10/postgresql-remote.html
Ref:
- Gemini