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



This content originally appeared on DEV Community and was authored by iconnext

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

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

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

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

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

# sudo -u postgres psql

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

postgres-#

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

postgres-# \du หรือ \du+ 

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

Image description

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

postgres-# CREATE USER demo WITH PASSWORD 'demo1234';

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

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

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

postgres-# CREATE DATABASE demodb;

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

postgres-# GRANT ALL PRIVILEGES ON DATABASE demodb TO demo;

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

postgres-# ALTER DATABASE demodb OWNER TO demo;

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

postgres-# \l

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

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

postgres-# CREATE DATABASE demodb WITH OWNER demo;

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


This content originally appeared on DEV Community and was authored by iconnext