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 ในคำสั่งเดียว

บทส่งท้าย

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

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay