บทความนี้จะพาไปดูขั้นตอนการสร้างฐานข้อมูลใหม่ใน PostgreSQL บนระบบปฏิบัติการ Ubuntu ตั้งแต่การเข้าใช้งานด้วยสิทธิ์แอดมิน การตรวจสอบฐานข้อมูลและผู้ใช้งานที่มีอยู่ ไปจนถึงการสร้างฐานข้อมูลใหม่และมอบสิทธิ์การใช้งานให้กับผู้ใช้ครับ
1. เข้าใช้งานด้วยสิทธิ์แอดมิน (ผ่าน User postgres)
วิธีนี้ง่ายที่สุดและมักใช้ในตอนแรกเพื่อเข้าไปจัดการระบบ เช่น เข้าไปรันคำสั่งสร้างฐานข้อมูลหรือผู้ใช้งาน
แบบที่ 1: เข้าสู่ psql ด้วยคำสั่งเดียว (แนะนำ)
sudo -u postgres psql(ระบบอาจจะถามรหัสผ่านของ Ubuntu ของคุณ ให้กรอกรหัสผ่านคอมพิวเตอร์ของคุณได้เลย)
แบบที่ 2: สลับบัญชีผู้ใช้ใน Ubuntu ก่อน แล้วค่อยเข้า psql
พิมพ์คำสั่งนี้เพื่อสลับตัวเองเป็น user postgres:
sudo -i -u postgres(สังเกตว่าหน้าจอจะเปลี่ยนเป็น postgres@your-computer-name:~$ ) จากนั้นพิมพ์คำสั่งนี้เพื่อเข้าสู่หน้าจอคำสั่งของ PostgreSQL:
psql2. ดูรายชื่อฐานข้อมูล (List Databases)
ถ้าใช้ psql prompt:
\l(หรือพิมพ์ \list ก็ได้ครับ)
ถ้าใช้คำสั่ง SQL:
SELECT datname FROM pg_database;3. ดูรายชื่อผู้ใช้งาน (List Users / Roles)
ถ้าใช้ psql prompt:
\duถ้าใช้คำสั่ง SQL:
SELECT usename FROM pg_user;
-- หรือ
SELECT rolname FROM pg_roles;4. สร้างฐานข้อมูล (Create Database)
ใช้คำสั่ง SQL ตามนี้ได้เลยครับ:
CREATE DATABASE mydatabase;(เปลี่ยน mydatabase เป็นชื่อฐานข้อมูลที่คุณต้องการ)
5. การมอบสิทธิ์ให้ User (Grant Privileges)
ก่อนจะมอบสิทธิ์ได้ ปกติเราต้องมี User ก่อน (ถ้ามีแล้วข้ามคำสั่งสร้างไปได้เลยครับ)
5.1 สร้าง User ใหม่ (พร้อมตั้งรหัสผ่าน)
CREATE USER myuser WITH PASSWORD 'mypassword';5.2 มอบสิทธิ์การใช้งานฐานข้อมูลทั้งหมดให้ User
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;ข้อควรระวังสำหรับ PostgreSQL 15 ขึ้นไป
การให้สิทธิ์แค่ระดับ Database อาจจะไม่พอให้ User สามารถสร้าง Table หรือจัดการข้อมูลใน schema public ได้ หากคุณต้องการให้สิทธิ์แบบเต็มในการสร้างตารางด้วย ให้ทำตามขั้นตอนนี้เพิ่มเติมครับ:
- เชื่อมต่อไปที่ฐานข้อมูลนั้นก่อน (ใน psql พิมพ์ \c mydatabase)
- รันคำสั่งนี้เพื่อให้สิทธิ์จัดการ Schema public:
GRANT ALL ON SCHEMA public TO myuser;
