DEV Community

Cover image for การสร้างผู้ใช้และให้สิทธิความเป็นเจ้าของฐานข้อมูล PostgreSQL บน Ubuntu
iconnext for ใดๆในโลกล้วน Postgres

Posted on • Edited on

การสร้างผู้ใช้และให้สิทธิความเป็นเจ้าของฐานข้อมูล PostgreSQL บน Ubuntu

บทนำ

ในฐานะ database administrator เราต้องมีการสรา้งฐานข้อมูลให้ ทีม developer ในการบริหารจัดการระบบที่จะพัฒนาขึ้น ในการสรา้งฐานข้อมูล postgres ซึ่งจะเป็นเจ้าของฐานข้อมูลทุกตัวที่สร้างขึ้นมา จะให้รหัสผ่าน postgres กับทีม developor กระดากใจ จะสร้างผู้ใช้งานและกำหนดสิทธิ ก็เดี๋ยวต้องมาคอยกำหนดสิทธิเพิ่มเติมอีกให้ว้าวุ่นกันอีก(เพราะในกระบวนพัฒนาระบบโครงสร้างข้อมูลยังไม่นิ่ง) ดังนั้นวิธีดีคือ เราจึงต้องสร้างผู้ใช้งาน และมอบสิทธิความเป็นเจ้าของ(owner)ให้ฐานข้อมูลนั้นเพื่อให้สามารถเข้าถึงฐานข้อมูลนั้น และในกรณีที่รหัสผ่านของผู้ใช้งานนั้นหลุดก็มีผลกระทบแค่กับฐานข้อมูลนั้น

บทความนี้จะแสดงการสร้างผู้ใช้งาน และให้สิทธิความเป็นเจ้าของฐานข้อมูล PosgreSQL ผ่าน command line บน Ubuntu Linux

วิธีดังกล่าวสามารถนำไปใช้กับ PostgreSQL ที่ติดตั้งในระบบปฏิบัติอื่นๆได้

การสร้างผู้ใช้งานใหม่บน PostgreSQL

1.เข้าใช้งาน psql เพื่อเข้าใช้งาน PostGreSQL ผ่าน command line ที่ terminal ใน Ubuntu พิมพ์

# sudo -u postgres psql
Enter fullscreen mode Exit fullscreen mode

จะเข้าสู่ shell ของ postgres

postgres-#
Enter fullscreen mode Exit fullscreen mode

2.แสดงรายการผู้ใช้งานใน PostgreSQL ผ่านคำสั่ง

postgres-# \du หรือ \du+ 
Enter fullscreen mode Exit fullscreen mode

จะแสดงรายชื่อผู้ใช้งานในฐานข้อมูล

Image description

3.สรา้งผู้ใช้งานชื่อ demo โดยกำหนดรหัสผ่านเป็น demo1234 ผ่านคำสั่ง SQL

postgres-# CREATE USER demo WITH PASSWORD 'demo1234';
Enter fullscreen mode Exit fullscreen mode

เมื่อใช้คำสั่ง \du จะพบชื่อผู้ใช้งาน demo ที่สร้างขึ้นใหม่
Image description

การมอบสิทธิเจ้าของฐานข้อมูลให้ผู้ใช้งานที่สร้างขึ้น

1.สรา้งฐานข้อมูล demodb ผ่านคำสั่ง SQL

postgres-# CREATE DATABASE demodb;
Enter fullscreen mode Exit fullscreen mode

2.มอบทุกสิทธิในฐานข้อมูล demodb ให้กับผู้ใช้งาน demo ผ่านคำสั่ง

postgres-# GRANT ALL PRIVILEGES ON DATABASE demodb TO demo;
Enter fullscreen mode Exit fullscreen mode

3.มอบสิทธิความเป็นเจ้าของ demodb ให้กับผู้ใช้งาน demo ผ่านคำสั่ง

postgres-# ALTER DATABASE demodb OWNER TO demo;
Enter fullscreen mode Exit fullscreen mode

4.ตรวจสอบความเป็นเจ้าของฐานข้อมูล โดยใช้ \l แสดงรายชื่อฐานข้อมูล

postgres-# \l
Enter fullscreen mode Exit fullscreen mode

ในรายชื่อฐานข้อมูล demodb ที่คอลัมถ์ Owner จะแสดงค่าเป็น demo
Image description

หมายเหตุ เราสามารถสร้างฐานข้อมูลพร้อมกำหนดเจ้าของได้ในคำสั่งเดียวผ่าน

postgres-# CREATE DATABASE demodb WITH OWNER demo;

จะเป็นการสรา้งฐานข้อมูล demodb พร้อมกับกำหนดเจ้าของเป็น demo ในคำสั่งเดียว

บทส่งท้าย

ก็จะมีคำถามต่อมาว่า ถ้ารหัสผ่านของผู้ใช้ที่สร้างมาหลุดไปก็ไม่ปลอดภัยสิ ซึ่งเมื่อระบบขึ้นใช้งานจริงแล้วเราสามารถจำกัดสิทธิบางอย่างของผู้ใช้งานนั้นได้ หรือสร้างผู้ใช่งานใหม่โดยกำหนดสิทธิเท่าที่จำเป็น และใช้ผู้ใช้งานนั้นในการเชื่อมต่อฐานข้อมูล

Top comments (0)