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

iconnext - Jun 22 - - Dev Community

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

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

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

การสร้างผู้ใช้งานใหม่บน 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 ในคำสั่งเดียว

. .